JQuery拖拽改变元素的尺寸

"元素拖拽改变大小"其实和"元素拖拽"一个原理,只是所动态改变的对象不同而已,主要在于 top、left、width、height 的运用,相对实现起来也非常容易。以下附出源码原型,弄明白了原理再扩展其他实际应用,思路就变得简单、清晰得多了。先来看看效果:塔河县臧清机械

下面是 JavaScript Code

view source

print?

01 <script type="text/javascript">
02     /*
03      * jQuery.Resize by wuxinxi007
04      * Date: 2011-5-14
05      */
06     $(function(){
07         //绑定需要拖拽改变大小的元素对象
08         bindResize(document.getElementById(‘test‘));
09     });
10    
11     function bindResize(el){
12         //初始化参数
13         var els = el.style,
14             //鼠标的 X 和 Y 轴坐标
15             x = y = 0;
16         //邪恶的食指
17         $(el).mousedown(function(e){
18             //按下元素后,计算当前鼠标与对象计算后的坐标
19             x = e.clientX - el.offsetWidth,
20             y = e.clientY - el.offsetHeight;
21             //在支持 setCapture 做些东东
22             el.setCapture ? (
23                 //捕捉焦点
24                 el.setCapture(),
25                 //设置事件
26                 el.onmousemove = function(ev){
27                     mouseMove(ev || event)
28                 },
29                 el.onmouseup = mouseUp
30             ) : (
31                 //绑定事件
32                 $(document).bind("mousemove",mouseMove).bind("mouseup",mouseUp)
33             )
34             //防止默认事件发生
35             e.preventDefault()
36         });
37         //移动事件
38         function mouseMove(e){
39             //宇宙超级无敌运算中...
40             els.width = e.clientX - x + ‘px‘,
41             els.height = e.clientY - y + ‘px‘
42         }
43         //停止事件
44         function mouseUp(){
45             //在支持 releaseCapture 做些东东
46             el.releaseCapture ? (
47                 //释放焦点
48                 el.releaseCapture(),
49                 //移除事件
50                 el.onmousemove = el.onmouseup = null
51             ) : (
52                 //卸载事件
53                 $(document).unbind("mousemove", mouseMove).unbind("mouseup", mouseUp)
54             )
55         }
56     }
57 </script>
时间: 2024-10-23 00:24:26

JQuery拖拽改变元素的尺寸的相关文章

jquery插件之拖拽改变元素大小

该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧. 此插件旨在实现目前较为流行的拖拽改变元素大小的效果,您可以根据自己的实际需求来设置被拖拽元素的最小宽高和最大宽高.整体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitiona

javascript动画系列第四篇——拖拽改变元素大小

× 目录 [1]原理简介 [2]范围圈定 [3]大小改变[4]代码优化 前面的话 拖拽可以让元素移动,也可以改变元素大小.本文将详细介绍拖拽改变元素大小的效果实现 原理简介 拖拽让元素移动,是改变定位元素的left和top值实现的.而拖拽改变元素大小,则还需要改变元素的宽高 范围圈定 我们把改变元素大小的范围圈定在距离相应边10px的范围内 左侧边界L = obj.offsetLeft + 10 右侧边界R = obj.offsetLeft + obj.offsetWidth - 10 上侧边界

拖拽改变元素位置或大小bug修复

<!doctype html><html><head>   <meta charset="utf-8">   <title>无标题文档</title><style>body{   background:#000;}.upshop-view{   width:320px;   height:499px;   background:#fff;   background-size:contain;   pos

拖拽改变元素位置或大小

<!doctype html><html><head><meta charset="utf-8"><title>无标题文档</title><style>body{ background:#000;}.upshop-view{ width:320px; height:499px; background:#fff; background-size:contain; position:relative; z-

通过Ztree生成页面html元素Dom树,以及拖拽改变元素的位置

zTree 是一款依靠 jQuery 实现的多功能 "树插件",http://www.treejs.cn/v3/main.php#_zTreeInfo,功能强大,不多赘述. 下面我将介绍如何实现使用该插件生成HTML元素Dom树,并对其进行多样操作. 先贴上一个简单的HTML页面(直接拿的ztree的用的,画面简单实用,里面的文字内容不用在意) 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-e

多方向拖拽改变元素大小

拖拽:1 onmousedown 存距离 disX/Y2 onmousemove 修改left top3 onmouseup 释放资源 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <style> 7 #box{ 8 width: 100px; 9

UEditor 解决拖拽视频元素改变视频尺寸时,无法保存视频尺寸问题的解决方法

UEditor虽然强大,但是bug还是蛮多的.比如插入视频元素后,拖拽视频去缩放尺寸,编辑器并没有将实际的尺寸保存下来.当你点击HTML按钮查看源代码时,width和height还是原来的值,再次点击此按钮回到正常状态,缩略图又回到原来的大小了. 翻源代码翻了蛮久,终于把这个问题解决了.问题就出在插入视频后创建视频HTML字符串和HTML字符串与可视化编辑层转化的地方. 当视频上传完成后,创建一个img用于可视化编辑,将默认width和height设置到img的width和height的属性中.

JQUERY 拖拽 draggable droppable resizable selectable sortable

今天用了jq ui的拖动碰撞功能,好不容易看到有详细的API解说,记录如下: <script language="JavaScript" type="text/javascript" src="ui/jquery-1.8.2.js"></script> <script language="JavaScript" type="text/javascript" src="

拖拽改变div的大小

拖拽改变div的大小 1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6 <title>Resize</title> 7 <style type="text/css"> 8 #rRightDow