js原生代码实现鼠标拖拽(超简单)

Posted wikina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js原生代码实现鼠标拖拽(超简单)相关的知识,希望对你有一定的参考价值。

首先先来看这一张图

技术分享图片

在这种图中,盒子的大小为512px,并且margin-left:-250px margin-top:140px;并通过一些样式让其在中部显示

这些样式都不是重要的,这里加个margin是为了让其出现拖拽的时候出现鼠标偏移,好做演示而已,不然margin:0 auto 就可以实现盒子的居中

首先通过offsetLeft的方法获取到盒子的偏移值,然后在通过clientX,clientY获取到鼠标的坐标,通过当前坐标减去offsetLeft的坐标就可以获取鼠标在div里面的

具体数值,也就是鼠标应该在的地方

这个时候拖拽的时候回出现鼠标偏移的现象,没错,这是margin值搞的鬼,margin也是盒子的一部分,所有要获取到鼠标在盒子里面的位置的话,加上的margin要减掉

减掉的margin要加上,这个是我根据思路得到的代码,可以参考一下,大神请忽悠

技术分享图片

 

以上是关于js原生代码实现鼠标拖拽(超简单)的主要内容,如果未能解决你的问题,请参考以下文章

Drag,js实现鼠标拖拽元素

Drag,js实现鼠标拖拽元素

原生js实现拖拽功能

原生js实现拖拽效果

React.js实现原生js拖拽效果及思考

React.js实现原生js拖拽效果及思考