javascript:鼠标拖动一个小的div1悬停到一个大的div2上,怎让大的div2触发鼠标悬停事件

鼠标拖动一个小的div1悬停到一个大的div2上,
怎让大的div2触发鼠标悬停事件
阅读 2.3k
2 个回答

我自己做过很多拖动相关的功能,虽然有 drag 相关的 api,但是自定义和兼容性问题,我还是喜欢自己写,下面我按照我的思路给你说一下:

1. 在 div1 上添加 mousedown 事件监听
2. 在 mousedown 监听的函数里,立即给 document 怎加一个 mousemove 的监听,因为实际上在拖动的时候只有 document 可以感知到鼠标在上边动,当然加到 body 上也可以,但是会有一些小问题,推荐还是放在 document 上,同时还要在 document 上增加一个 mouseup 的事件,这样就可以监听到鼠标放开的事件,要注意的是,在触发 mouseup时要把 mousemove 给去掉
3. 在 document 的 mousemove 监听事件里,就可以记录鼠标移动到哪了,一般如果要做一个拖动的动画,比如克隆一个你鼠标点下的那个元素的内容,可以在上一步的时候创建一个 position 是 fixed 的元素,让后让它的起始坐标就在鼠标点击的地方,至于这个元素的样式,就可以随便发挥了,可以随便自定义
4. 至于你问题中提到的问题,很好解决,可以在第二步在 mousedown 监听的函数里,立即给 div2 增加一个 mouseenter 事件和 mouserleave 事件,这样就可以感知到鼠标拖着 div1 到 div2 上了,当然如果你不需要监听鼠标在 document 上移动到什么位置,你可以不添加 document 的 mousemove 监听

鼠标悬停事件是什么,你在拖动过程中悬浮过去,可以监听mousemove之类的事件的呀。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题