js移动和拖拽

本文深入解析了网页元素的拖拽交互实现方式,包括基于onmousedown、onmousemove和onmouseup的绝对定位拖拽方法,以及利用dragstart、dragover、drop等事件的HTML5拖放API。介绍了如何设置元素为draggable,以及在拖拽过程中如何处理dragenter、dragleave等事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

移动
  • 绝对定位法
  • onmousedown:鼠标按键按下事件。
    获取鼠标位置,获取被拖拽元素的位置,记录两者之间的纵横坐标的差值(clientX和offsetX差值, clientY和offsetY差值)。
  • onmousemove:模拟拖拽中事件。
    鼠标拖动即发生 onmousemove 事件。对容器元素绑定 。将被拖拽元素的 position 改成绝对位置,这个可以通过 left 和 top 改变该元素的位置,从而使得该元素随着鼠标的拖拽而移动。获取鼠标位置,将鼠标 x 坐标( e.clientX )减去第 2 步储存的横坐标差作为被拖动元素的 left 值,将鼠标y 坐标( e.clientY )减去第 2 步储存的纵坐标差作为被拖动元素的 top 值。实现元素跟随鼠标拖动的效果。
  • onmouseup:模拟拖拽结束事件。
    鼠标按键弹起即发生 onmouseup 事件。对容器元素绑定 . 可以回收 onmousemove 和 onmousedown中的 事件和变量,一次拖拽至此结束。
拖拽
  • 设置元素为 draggable
  • dragstart :当用户开始拖动对象时触发。(拖拽对象)
  • dragenter : 当鼠标第一次经过目标元素,且有拖动发生时触发。此事件的监听者应指明在这个位置上是否允许 drop ,或者监听者不执行任何操作,那么 drop 默认是不允许的。(放置目标)
  • dragover :当鼠标经过一个元素时,且有拖动发生时触发 。需要 e.preventDefault() 防止drag失效 (放置目标)
  • dragleave :当鼠标离开一个元素,且有拖动在发生时触发。(放置目标)
  • drag :当对象被拖动,每次移动鼠标时触发。(拖拽对象)
  • drop :在 drag 操作的最后发生 drop 时,在元素上触发此事件。监听者应该负责检索拖动的数据,并插入 drop 的位置。(放置目标)
  • dragend :在拖动对象时放开鼠标按键时触发。(拖拽对象)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值