千家信息网

前端html5中drag和drop怎么用

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下前端html5中drag和drop怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!简介拖拽(Drag
千家信息网最后更新 2026年11月02日前端html5中drag和drop怎么用

小编给大家分享一下前端html5中drag和drop怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

简介

拖拽(Drag/Drop)是一个很普遍、很常用的操作,即抓取一个对象后,放到想要放的地方。 在H5中,拖拽是一个标准操作,任何元素都可以拖拽!! 但是!! 想要实现拖拽,需要添加 拖拽属性。

H5中拖拽属性:draggable: auto | true | false

注意:链接和图片默认是可拖动的,则不需要 draggable 属性。

- Drag(在拖拽目标时触发事件)

  • dragstart - 元素开始拖动时触发此事件

  • drag - 元素正在拖动时触发此事件

  • dragend - 元素拖动结束后触发此事件

- Drop(在目标区域释放时触发事件)

  • dragenter - 当被拖动的元素进入目标区域内时触发此事件

  • dragover - 当被拖动的元素在目标区域内拖动时触发此事件

  • dragleave - 当被拖动的元素离开目标区域时触发此事件

  • drop - 当被拖动的元素在目标区域被放下时触发此事件

拖拽步骤

设置元素属性draggable 为 true:

 
左边区域
可移动的文字一
可移动的文字二
可移动的文字三
可移动的文字四
可移动的文字五

拖动

dragstart 事件: 在进行拖放操作时,通过dataTransfer来实现数据的存储和获取,每个event事件对象中都会有DataTransfer对象用来保存被拖动的数据。它可以保存一项或多项数据、一种或者多种数据类型。

  let left = document.getElementById('left')  let target = document.getElementById('right')  left.addEventListener('dragstart', (event) => {    const target = event.target;    // 在项目拖动的开始事件(ondragstart)的时候,可以对dataTransfer进行设值操作(setData)。    // 拖拽, dataTransfer 属性, 等于运输车    // 后续用 dataTransfer.getData获取    // 在项目拖动结束的时,可以获取dataTransfer对象里的值。    event.dataTransfer.setData('Text', target.id)    // js 事件有冒泡机制    console.log('drag开始拖动啦1');  })

drag事件:在拖拽过程中一直执行:

  left.addEventListener('drag', (event) => {    console.log('drag正在拖啦2');  })

dragend事件:结束:

 left.addEventListener('dragend', (event) => {    console.log('dragend拖动结束啦7');  })

放置

dragenter 和dragleave 事件:进入或离开目标区域:

  target.addEventListener('dragenter', (event) => {    console.log('dragenter进入区域啦3')  })    target.addEventListener('dragleave', (event) => {    console.log('dragleave离开拖动区域啦5')  })

dragover事件:默认无法将数据/元素放置到其他元素中。如果需要设置允许放置,就要阻止元素的默认行为。

  target.addEventListener('dragover', (event) => {    // 阻止默认行为    event.preventDefault();    console.log('dragover在区域内拖动啦4')  })

drop事件:放下

  target.addEventListener('drop', (event) => {    console.log('drop释放鼠标啦6')    let drag_id = event.dataTransfer.getData('text')    target.appendChild(document.getElementById(drag_id))  })

完整代码

      Document    
左边区域
可移动的文字一
可移动的文字二
可移动的文字三
可移动的文字四
可移动的文字五

小记

dragstart事件中通过dataTransfer来实现数据的存储和获取,每个event事件对象中都会有DataTransfer对象用来保存被拖动的数据。在项目拖动的开始事件(ondragstart)的时候,可以对dataTransfer进行设值操作(setData)。event.dataTransfer.setData() 进行设值,在拖动结束后,可以通过event.dataTransfer.getData()获取dataTransfer对象里的值。

浏览器默认无法将数据/元素放置到其他元素中,如果需要设置允许放置,就要阻止元素的默认行为。通过event.preventDefault()阻止。

可以通过添加css样式进行对拖拽效果的改变。例:dragSrc.classList.add('ds') 。使用classList在元素中添加,移除及切换 CSS 类,classList 属性是只读的,但可以使用 add() 和 remove() 方法修改它。

使用 appendChild() 方法移除元素到另外一个元素。

HTML Drag and Drop API

DataTransfer()

HTML DOM appendChild() 方法

HTML DOM addEventListener() 方法

以上是"前端html5中drag和drop怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

事件 元素 区域 文字 移动 数据 对象 目标 属性 方法 正在 篇文章 行为 项目 前端 内容 可以通过 右边 时候 存储 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司 百单网互联网科技有限公司怎么样 互联网是第几次科技革命的成果 中国互联网科技工作委员会毛军 河南真二互联网科技有限公司 互联网科技作文 艾特科技互联网 远拓互联网科技 互联网科技logo 菲比寻常互联网科技 互联网 科技服务平台 互联网汽车科技小镇 现代科技和互联网有关系吗 互联网系的金融科技公司 成都互联网科技公司工作好不好 燊美集互联网科技有限公司 保险科技服务互联网营销体系 城市宝互联网科技有限公司 萌小萌互联网科技河南有限公司 容联科技互联网电商 中关村互联网科技集团 金融科技与互联网金融 狮子座互联网科技 苏州大垚互联网科技 长亮科技互联网金融 互联网科技视频素材 受益于互联网科技的高速发展 崇明区互联网教育科技诚信经营 宁波跨境商互联网科技有限公司 优雇互联网科技有限公司
0