H5的拖放功能详解-
发布时间:08/01 来源:未知 浏览:
关键词:
对于HTML5中的拖放
拖放(Drag 和 Drop)是一种常见的特性,即抓取对象今后拖到另一个位置,在 HTML5 中,拖放是规范的组成局部。在HTML5中会员可以运用鼠标选中一个可拖动元素,将元素拖动到一个可放置元素,并通过开释鼠标按钮放到这些元素。在拖动操纵期间,可拖动元素的半透亮表示追随鼠标指针。
要是我们但愿元素可以被拖动,那么需要将其 draggable属性设为true (a标签draggable默许是true)
拖放的事件
在进行拖放操纵的不一样阶段会触发数种事件,拖拽事件的dataTransfer属性寄存了拖放操纵中的相干数据。
dragstart | 作用于[源元素],当一个元素开端被拖拽的时候触发,会员拖拽的元素需要附加dragstart事件。在这个事件中,监听器将设定与这次拖拽相干的信息,例如拖动的数据和图像。 |
dragenter | 作用于[源元素],当拖拽中的鼠标进入一个元素的时候触发。这个事件的监听器需要指明可否允许在这个区域开释鼠标。要是没有设定监听器,或者监听器没有进行操纵,则默许不允许开释。 |
dragover | 作用于[指标元素],当拖拽中的鼠标挪移经过一个元素的时候触发。 |
dragleave | 作用于[指标元素],当拖拽中的鼠标脱离元素时触发。可以作为可开释反应的高亮或插入标志去掉。 |
drag | 作用于[源元素],事件在元素被拖动时触发。 |
drop | 作用于[指标元素],在拖拽操纵完毕开释时于开释元素上触发。 |
dragend | 作用于[源元素],拖拽源在拖拽操纵完毕时触发,无论操纵成功与否。 |
(在拖拽的时候只会触发拖拽的相干事件,鼠标事件,例如mousemove,是不会触发的)
DataTransfer 对象
在处置拖放操纵时,我们需要用到 DataTransfer 对象来保留被拖动的数据。 DataTransfer 可以保留一项或多项数据、一种或者多种数据类型。
属性
dropEffect | dropEffect [String]指定现实的放置结果,可能的值: copy: 复制到新的位置 move: 挪移到新的位置 link: 创立一个源位置到新位置的链接 none: 制止放置(制止任何操纵) |
effectAllowed | [String]指定拖动时被允许的结果,可能的值: copy: 复制到新的位置. move:挪移到新的位置 . link:创立一个源位置到新位置的链接. copyLink: 允许复制或者链接. copyMove: 允许复制或者挪移. linkMove: 允许链接或者挪移. all: 允许所有的操纵. none: 制止所有操纵. uninitialized: 缺省值(默许值), 相当于 all. |
files | 包括一个在数据传输上所有可用的当地文件列表。要是拖动操纵不波及拖动文件,此属性是一个空列表。 |
types | 保留一个被存储数据的类型列表作为首先项,次序与被增加数据的次序一致。要是没有增加数据将返回一个空列表。 |
办法
void addElement(Element element) | 设定拖动源。平常不需要转变这项,要是修改这项将会影响拖动的哪个节点和dragend事件的触发。默许指标是被拖动的节点 |
void clearData(String type) | 删除与给定类型关联的数据。类型参数是可选的。要是类型为空或未指定,将删除所有类型相干联的数据。要是不存在指定类型的数据,或数据传输不包括任何数据,此办法将没有任何结果。 |
String getData(String type) | 获得给定类型的数据,要是给定类型的数据不存在或者数据转存没有海涵数据,办法将返回一个空字符串。 |
void setData(String type,String data) | 为一个给定的类型设定数据。要是该数据类型不存在,它将增加到的末尾,这样类型列表中的最后一个项目将是新的格局。要是已经存在的数据类型,替代雷同的位置的现有数据。就是,当改换雷同类型的数据时,不会更改类型列表的次序。 |
void setDragImage(DOMElement image,long x,long y) | 自定义一个奢望的拖动时的图片。大多数状况下,这项不消设定,由于被拖动的节点被新建成默许图片。 image 要用作拖动反应图像元素 x 图像内的水平偏移量. y 像内的垂直偏移量. |
阅读器支撑
Internet Explorer 9+、Firefox、Opera 12、Chrome 以及 Safari 5+
演示代码
Drag & Drop
可拖拽元素
打赏
- 上一篇:HTML5之type=file文件上传功能-
- 下一篇:H5表单验证是什么办法-