首页 > 代码库 > JQuery拖拽改变元素的尺寸
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> |
JQuery拖拽改变元素的尺寸
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。