HTML5笔记三:拖放
2016-07-18 17:06
162 查看
1.兼容火狐
<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style> li{ list-style:none; width:100px; height:30px; background:yellow; margin:10px;} #div1{ width:100px; height:100px; background:red; margin:200px;} </style> <script> /*拖放事件 解决火狐下的问题 必须设置dataTransfer对象才可以拖拽除图片外的其他标签 dataTransfer对象 setData() : 设置数据 key和value(必须是字符串) getData() : 获取数据,根据key值,获取对应的value */ window.onload = function() { var oUl = document.getElementsByTagName('ul')[0]; var oLi = oUl.getElementsByTagName('li'); var oDiv = document.getElementById('div1'); var i = 0; for(var i = 0;i<oLi.length;i++){ oLi[i].index = i; oLi[i].ondragstart = function(ev){ var ev = ev || window.event; ev.dataTransfer.setData('name',this.index); this.style.background = 'green'; } } oDiv.ondragend = function(){ this.style.background = 'yellow'; } oDiv.ondragenter = function(){ this.style.background = 'blue'; } oDiv.ondragover = function(ev) { //enter和leave之间连续触发 //要想触发drop事件,就 必须在dragover当中阻止默认事件 //document.title = i++; ev.preventDefault(); } oDiv.ondragleave = function(){ this.style.background = 'red'; } oDiv.ondrop = function(ev){ oUl.removeChild(oLi[ev.dataTransfer.getData('name')]); for(var i = 0; i<oLi.length; i++){ oLi[i].index = i; } } } </script> </head> <body> <ul> <li draggable="true">a</li> <li draggable="true">b</li> <li draggable="true">c</li> </ul> <div id="div1"></div> </body> </html>
相关文章推荐
- HTML5中在客户端验证文件上传的大小
- html5 web数据存储
- 页面元素查找之Selectors API
- 使用ajax实现用户登录验证(升级版)
- Canvas 在高清屏下绘制图片变模糊的解决方法
- 关于前端的思考与感悟
- 新时代编辑神器:Atom
- rem : web app适配的秘密武器
- jquery高级应用之Deferred对象
- 又被事件冒泡坑了一把,这次要彻底弄懂浏览器的事件流
- 移动端点击事件全攻略,这里的坑你知多少?
- $q 实例分析 Angular 中的 Promise
- 浏览器中唤起native app || 跳转到应用商城下载
- Angular directive 实例详解
- 关于浮动与清除浮动,你应该知道的
- 数组reduce方法的高级技巧
- 原生js结合html5制作小飞龙的简易跳球
- HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)