摘要:如果拖动元素经过不允许放置的元素,无论用户如何操作,都不会触发事件。让其他元素可以拖放也是可能的。为所有元素规定了一个属性,表示元素是否可以拖动。通过设置这个属性可以使其他元素可拖动相关实例垃圾桶参考资料高级程序设计拖拽与拖放简介
重点知识 拖放事件
拖动某元素时,会在被拖动元素上以此触发下列事件:
dragstart:当拖拽元素开始被拖拽的时候触发的事件
drag:当拖拽元素的过程中一直触发的事件
dragend:当拖拽完成后触发的事件
当某个元素被拖放到一个有效的放置目标上时,放置目标上回依次触发下列事件:
dragenter:当拖曳元素进入目标元素的时候触发的事件
dragover:拖拽元素在目标元素上移动的时候触发的事件
dragleave:当拖曳元素离开目标元素的时候触发的事件
drop:被拖拽的元素在目标元素上同时鼠标放开触发的事件
自定义放置目标:在拖放元素经过某些无效放置目标时,可以看到一种特殊的光标(圆环中有一条反斜线),表示不能放置。虽然所有元素都支持放置目标事件,但这些元素默认是不允许放置的。如果拖动元素经过不允许放置的元素,无论用户如何操作,都不会触发drop事件。不过,你可以把任何元素变成有效的放置目标,方法是:重写dragenter和dragover事件的默认行为。
例如,假如一个ID为“droptarget”的div元素,可以用如下代码将它变成一个放置目标
var droptarget = document.getElementById("droptarget") droptarget.addEventListener("dragover", function(event){ event.preventDefault() } droptarget.addEventListener("dragenter", function(event){ event.preventDefault() }dataTransfer对象
dataTransfer对象,它是事件对象的一个属性,用于从被拖放元素向放置目标传递字符串格式的数据。
detaTransfer对象有两个主要方法:getData()和setData()。setData()方法的第一个参数,也是getData()方法的唯一的一个参数,是一个字符串,表示保存的数据类型,取值为“text”和“URL”
event.dataTransfer.setData("text", "some text"); var text = event.dataTransfer.getData("text");
注意:保存在dataTransfer对象中的数据只能在drop事件处理程序中读取。
可拖动默认情况下,只有图像、链接、文本是可以拖动的。让其他元素可以拖放也是可能的。HTML5为所有HTML元素规定了一个draggable属性,表示元素是否可以拖动。图像和链接的draggable属性自动设置成了true,而其他元素这个属性的默认值都是false。通过设置这个属性可以使其他元素可拖动
相关实例...
垃
圾
桶item 1item 2item 3item 4item 5
var dustbin = document.querySelector(".dustbin"); var draglist = document.getElementsByClassName("drag-item"); var remind = document.querySelector(".dragremind"); var dragElem = null; for(var i=0;i参考资料 《JavaScript高级程序设计》
HTML5 drag & drop 拖拽与拖放简介
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/87075.html
摘要:发展原生拖放的发展大致可分为三个阶段。在的实例基础上,进一步制定了拖放的规范。也根据规范实现了原生拖放功能。被拖动的元素在放置目标范围内移动时,会持续触发该事件。参考资料拖放操作拖拽操作拖拽类型列表高级程序设计第版第章脚本编程原生拖放 发展 原生拖放的发展大致可分为三个阶段:IE4、IE5+、HTML5。 IE4 是最早在网页中引入 JavaScript 拖放功能的,当时只有图像和选中...
阅读 2265·2021-09-27 13:35
阅读 561·2019-08-30 15:55
阅读 809·2019-08-30 15:53
阅读 554·2019-08-30 15:52
阅读 2145·2019-08-30 12:59
阅读 2268·2019-08-29 16:42
阅读 1384·2019-08-26 18:26
阅读 2466·2019-08-26 13:48