了提高用户体验,让操作更便捷化,拖拽操作会很常见,比如操作系统里面,你要删除一个文件,你可以直接把它拖入回收站,wordpress也有类型的功能,你想在侧边栏增加一个板块,可以直接拖一个小工具过去就行了,这的确方便了很多。如何在网页里面实现拖拽,本文做一个简单的解析。
首先说一下拖拽的原理:
鼠标在目标上按下(mousedown)——>摁住鼠标不放,然后移动鼠标(mousemove)——>获取鼠标的坐标位置,让目标跟随鼠标——>鼠标释放(mouseup),让目标停止跟随。
(示意图)
基本原理就是这样的,具体一些扩展应用,比如把一个对象拖放到另一个容器里,只需要做进一步的判断就可以了。
获取鼠标位置(坐标)
在拖拽开始之前,我们需要先知道怎么得到鼠标的位置,不然拖拽就无法进行下去。
主要代码:
简单的鼠标跟随效果
已经得到了鼠标的位置,下面可以设置一个对象,让它跟随鼠标移动,模仿拖拽的效果:
主要代码:
HTML代码:
简单拖拽的实现
有了上面的基础,我们就可以实现拖拽效果,其实就是给目标对象绑定onmousedown事件,然后让它跟随鼠标移动,当document的onmouseup发生的时候,停止跟随鼠标。为什么要用document的onmouseup,自己可以在实践中测试一下,鼠标可能会跑到目标对象的外面去,设定document的onmouseup能够避免这种现象造成的不良后果。
主要代码:
完善一点的案例
上面的拖拽似乎还很原始,需要进一步的改进,稍做改动,增加了一些拖动的限制,主要代码如下:
拖拽应用实例
利用拖拽调节图片透明度,查看示例
另外,如果有兴趣,你还可以参考这篇文章