HTML5技术

HTML5拖拽实例 - 大地飞鸿

字号+ 作者:H5之家 来源:博客园 2016-06-02 13:00 我要评论( )

拖拽相关属性 draggable属性是html5的全局属性,是html5支持拖放操作的方式之一,用来表示元素是否可以被拖放,draggable有三个值,true表示可以拖放,false表示不可以被拖放,auto表示使用浏览器的默认值 ulli draggable="true"列表1/lili draggable="true"列

拖拽相关属性

draggable属性是html5的全局属性,是html5支持拖放操作的方式之一,用来表示元素是否可以被拖放,draggable有三个值,true表示可以拖放,false表示不可以被拖放,auto表示使用浏览器的默认值

<ul> <li draggable="true">列表1</li> <li draggable="true">列表2</li> <li draggable="true">列表3</li> <li draggable="true">列表4</li> <li draggable="true">列表5</li> <li draggable="true">列表6</li> </ul> 拖拽相关的事件

ondragstart:此事件在用户开始拖动元素或选择文本时触发 ondrag:元素正在拖动时触发 ondragend:用户完成元素拖放时触发 ondragleave:当被鼠标拖动的对象离开其容器范围时触发 ondragover:当某个被拖动的对象在另一对象容器范围内拖动时触发此事件,此事件发生在目标元素身上 ondrop:在一个拖动过程中,释放鼠标时触发,此事件作用在目标元素身上

dataTransfer 对象相关方法

setData(format,data):添加自定义数据格式 getData(format):获取自定义的数据格式clearData([format]):清除自定义的数据格式及数据

Event.preventDefault()

此方法是阻止事件的默认行为,在ondragover中一定要执行preventDefault(),否则ondrop事件不会被触发

实现案例:

image

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .main{ width: 800px; /*border: 1px solid #ccc;*/ height: 400px; margin:0 auto; } .left{ float: left; width: 25%; background-color: #666; height: 370px; text-align: center; color: black; padding-top:30px ; font-size: 110px; } .right{ float: right; width: 69%; } .right ul,.right li{ margin: 0; padding: 0; } .right li{ list-style: none; border: 2px dashed #666; background-color: #ddd; height: 60px; margin-top: 3px; text-indent: 30px; line-height: 60px; } .right li:hover{ background-color: #ccc; } #message{ width: 800px; text-align: center; border: 1px solid black; margin: 20px auto; font-size:28px; } </style> <script type="text/javascript"> window.onload = function(){ var aLi = document.getElementsByTagName('li'); var oLeft = document.getElementsByClassName('left')[0]; var oMessage = document.getElementById('message'); for(var i=0;i<aLi.length;i++){ aLi[i].index = i+1; aLi[i].ondragstart = function(ev){ //事件对象ev var ev = ev || event; ev.dataTransfer.setData("Text",this.id); } } oLeft.ondrop = function(ev){ var ev = ev || event; var data = ev.dataTransfer.getData("Text"); var num = document.getElementById(data).index; document.getElementById(data).remove(); oMessage.innerHTML = "列表"+num+"被放进了垃圾箱"; this.style.color = "black"; } oLeft.ondragover = function(ev){ var ev = ev || event; ev.preventDefault(); } oLeft.ondragenter = function(){ this.style.color = "#fff"; } } </script> </head> <body> <div> <div>垃圾箱</div> <div> <ul> <li draggable="true">列表1</li> <li draggable="true">列表2</li> <li draggable="true">列表3</li> <li draggable="true">列表4</li> <li draggable="true">列表5</li> <li draggable="true">列表6</li> </ul> </div> <div></div> </div> <div>拖到垃圾箱删除列表</div> </body> </html>

原文地址:
扫码关注微信:前端应用-更多实战案例内容


 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    2017-05-02 11:02

  • HTML5 进阶系列:indexedDB 数据库 - _林鑫

    HTML5 进阶系列:indexedDB 数据库 - _林鑫

    2017-04-27 14:02

  • HTML5 高级系列:web Storage - _林鑫

    HTML5 高级系列:web Storage - _林鑫

    2017-04-27 14:01

  • HTML5和CSS3 - 奔跑在起跑线佼佼者

    HTML5和CSS3 - 奔跑在起跑线佼佼者

    2017-04-20 13:00

网友点评
c