draggable属性和dataTransfer对象

首先说下HTML5新增的draggable属性。

1.在html5中默认<img.../>和设置了href的是可拖动的,其他都需要手动把元素的draggable属性设置为true。

2.然后使元素携带数据应该为拖动元素的ondragstart(开始拖动触发该事件)事件指定监听器,在监听器中让拖动操作可以携带数据。

3.之后为了让document接受放的动作,为document的ondragover事件设定监听器,在监听器中取消document对拖动事件的默认行为。

4.然而不同浏览器在元素拖动到指定位置释放之后默认的动作是不同的(火狐释放后会跳到新页面,谷歌则没有任何动作)。我们要取消拖放操作的默认动作,为document的ondrap绑定监听器。 例如:写一个可以拖放的div

<div @drapstart="appDrap($event)" @dragover="appDragOver($event)" 
@drop="appDrop($event)" draggable="true">
复制代码

其中dragstart:开始拖动时触发。 dragover:被拖动元素进入本元素范围内拖动时不断触发。 drop:其他元素被放到本元素时触发。

再来说下DataTransfer对象

拖放触发的拖放事件有一个dataTransfer属性,该属性值是一个DataTransfer对象。 对象属性:

dataTransfer.getData():获取dataTransfer对象中format格式的数据。 dataTransfer.setData(): 向dataTransfer对象中设置format格式的数据。
参考地址:http://blog.csdn.net/cyseria/article/details/38354291

转载于:https://juejin.im/post/5ab06beaf265da238b7dd466

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue项目中,当将draggable属性设置为false时,表示该元素不可拖拽。\[1\]这意味着无法通过鼠标拖动该元素进行排序或其他操作。在一些情况下,当不需要依赖事件对象的值时,即使将元素设置为不可拖拽,仍然可以触发ondrop事件进行处理。\[2\]在HTML5中,如果需要在元素拖放中实现数据传递,可以使用dataTransfer对象。该对象主要用于在源元素和目标元素之间传递数据。在拖放过程中,可以使用setData()方法保存数据,在放置目标元素时使用getData()方法读取数据。\[3\] #### 引用[.reference_title] - *1* [vue项目中draggable实现拖拽排序](https://blog.csdn.net/wangzunkuan/article/details/82982856)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [draggable 为 false 时,在鼠标选中内容之后,还是可以拖动的,触发ondrop事件](https://blog.csdn.net/weixin_44679078/article/details/122462704)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [HTML5学习笔记(二)](https://blog.csdn.net/sinat_37138973/article/details/128008924)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值