码迷,mamicode.com
首页 > Windows程序 > 详细

HTML5 拖放API

时间:2017-09-11 21:09:54      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:append   ntb   有一个   asc   var   ble   nal   执行   drag   


1、设置元素可拖放(draggable: true)
<img draggable=‘true‘ id=‘source‘/>
2、拖动什么ondragstart setData

var source = document.getElementById(‘source‘);
source.addEventListioner(‘dragstart‘, function (event) {
  event.dataTransfer.setData(‘Text‘, event.target.id)
}, false)
// event.dataTransfer对象的setData方法可以给拖放的元素添加数据
// setData() 参数1:要添加的内容的MIME Type 参数2:MIME Type对应的数据

另外,对于链接、图片以及被选中的文字这些本来就可以拖动的元素,在拖动的时候会自动关联数据,对于链接关联的数据就是链接,对于图片就关联图片,对于选中的文字关联的就是文字了。

3、拖动到哪儿 ondragover
默认情况下元素都是不接受放置拖拽的,绑定dragover和dragenter,取消这两个事件的默认行为

var target = document.getElementById(‘target‘);
target.addEventListener(‘dragover‘,function (event) {
  event.preventDefault();
}, false)
target.addEventListener(‘dragenter‘,function (event) {
  event.preventDefault();
}, false)

4、进行放置 ondrop事件

target.addEventListener(‘drop‘,function (event) {
  event.preventDefault();
  var data = event.dataTransfer.getData("Text");
  event.target.appendChildren(document.getElementById(data))
}, false)
// event.dataTransfer对象的getData方法有一个参数,获得之前添加的拖放元素的MIME Type

event.dataTransfer还有effectAllowed和dropEffect这两个属性
effectAllowed 这个属性用来描述拖放的元素能够接受什么样的操作
* copy
* link
* move
* copyLink
* copyMove
* linkMove
* all
* none
* uninitialized
这个属性只能在拖放元素的 dragstart 事件处理程序中设置。

$source.on(‘dragstart‘,function(event){
  event = event.originalEvent;
  event.dataTransfer.effectAllowed = ‘move‘;
  event.dataTransfer.setData(‘text/plain‘,$(this).text());
});

dropEffect 用来设置目标元素将执行的操作,如果其属性值属于 effectAllowed 范围内,那么鼠标就会呈现一个接受放置的样子,松开鼠标按键后就会触发 drop 事件,否则就不会触发 drop 事件。这个属性的取值有下面几种:
* copy :表示应该把拖动的元素复制到这里。
* link :表示放置的目标应该打开拖动的元素。
* move :应该把拖动的元素移动到这里。
* none :不能把拖动元素放置在这里。
该属性要在放置目标的 dragover 事件处理程序中设置才有效。

$target.on(‘dragover‘,function(event){
  event.preventDefault();
  event = event.originalEvent;
  event.dataTransfer.dropEffect = ‘move‘;
});

  

 

HTML5 拖放API

标签:append   ntb   有一个   asc   var   ble   nal   执行   drag   

原文地址:http://www.cnblogs.com/running1/p/7506552.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!