Javascript 如何实现对象的拖动?

解决思路 
    这个效果并不算常见,通常用于游戏或个人站点中。因为拖曳是靠鼠标来操作的,所以对鼠标的位置的捕获是问题的重点,然后才是根据鼠标的位置设置层的位置。 
具体步骤: 
1.在对象(层)上按下鼠标时,先捕获到需要拖曳的对象,然后获取或设置该对象的相关属性。

2.开始拖曳时,捕获鼠标当前位置,并根据该数值设置被拖曳对象的位置。

3.拖曳完松开鼠标后,重设标志 down ,还原对象的 z-index并释放对它的鼠标捕捉。

4.完整代码。

 

注意:只有 CSS 的 position 属性值为 absolute 的对象才能进行拖动操作。 

技巧:可以在 init() 函数中加一句 event.cancelBubble=true ,以取消在该对象上的事件冒泡。 
试一试:读者可以试着实现移动其他对象,例如移动一个图片或文本框。 
特别提示 
在拖曳对象前必须确保该对象的为绝对定位的,把上面的完整代码保存就可以看到效果了,在实际就用时务必在对象上加上 onmousedown、onmousemove和onmouseup三个事件并触发相应函数。

特别说明

本例需要掌握的技巧比较多,捕捉鼠标,获取鼠标位置(相当于对象),释放鼠标捕捉,文档的滚动距离还有with 语句。 
1.       setCapture() 设置属于当前文档的对象的鼠标捕捉。 
2.       event.offsetX 设置或获取鼠标指针位置相对于触发事件的对象的 x 坐标。 
3.       event.offsetY 设置或获取鼠标指针位置相对于触发事件的对象的 y 坐标。 
4.       releaseCapture() 释放当前文档中对象的鼠标捕捉。 
5.       scrollLeft 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离。 
6.       scrollTop 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。 
7.       with 为一个或多个语句设定默认对象

 

说明:本文转自他处,如遇版权问题,请及时联系我。谢谢!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值