HTML5拖拽
来源:互联网 发布:数据库一致性错误修复 编辑:程序博客网 时间:2024/06/08 09:47
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>拖拽</title> <style type="text/css"> li{list-style:none;width: 100px;height: 30px;background: yellow;margin: 10px;} #div1{width: 100px;height: 100px;background: red;margin: 200px;} </style> <script type="text/javascript"> window.onload=function(){ var oUl=document.getElementsByTagName('ul')[0]; var aLi=oUl.getElementsByTagName('li'); var oDiv=document.getElementById('div1'); var i=0; for (var i = 0; i < aLi.length; i++) { aLi[i].index=i; aLi[i].ondragstart=function(ev){ var ev=ev||window.event; ev.dataTransfer.setData('name','hello'); ev.dataTransfer.effectAllowed='link'; this.style.background='green';//拖拽前触发 } aLi[i].ondrag=function(){ document.title=i++;//开始与结束连续触发 } aLi[i].ondragend=function(){ this.style.background='yellow';//拖拽后触发 } } oDiv.ondragenter=function(){ this.style.background='bule'; }; oDiv.ondragover=function(ev){ document.title=i++; //要想触发drop事件,就必须在dragover中阻止默认事件 ev.preventDefulte(); }; oDiv.ondragleave=function(){ this.style.background='red'; }; oDiv.ondrog=function(ev){ // alert(123); // //alert(ev.dataTransfer.getData('name')); // // oUl.removeChild(aLi[ev.dataTransfer.getData('name')]); // for (var i = 0; i < aLi.length; i++) { // aLi[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><!-- 拖拽事件draggable 设置为true,元素就可以拖拽拖拽元素事件:事件对象为被拖拽元素 此例被拖拽的元素是li dragstart:拖拽前触发 (因为是事件,所以要加on) dragend:拖拽后触发 drag:开始与结束连续触发目标元素事件:事件对象为目标元素 dragenter:进入目标元素触发,相当于mouseover dragleave:离开目标元素触发,相当于mouseout dragover:进入目标,离开目标。连续触发 drop: 在目标元素上鼠标抬起时触发事件执行的顺序:drop不触发的时候: dragstart->drag->dragenter->dragover->dragleave->dragenddrop触发的时候(dragover阻止默认事件): dragstart->drag->dragenter->dragover->drop->dragend解决火狐下的问题: 必须设置dataTransfer对象的setData方法拖拽除图片外的其他标签dataTransfer对象 setData():设置key和value(必须是字符串) getData():获取,根据key,得到相应的value effectAllowed:设置光标的样式,当拖拽时光标的样子 setDragImage():拖拽的对象,需要三个参数,一个拖拽的对象,另外两个是拖拽时的鼠标的坐标位置 -->
阅读全文
0 0
- HTML5拖拽
- html5 拖拽
- html5拖拽
- html5 拖拽
- html5拖拽
- html5拖拽
- html5拖拽
- html5 拖拽
- HTML5拖拽
- html5 拖拽
- Html5 拖拽
- HTML5 拖拽
- HTML5拖拽
- html5 拖拽
- HTML5 拖拽
- HTML5拖拽
- HTML5拖拽
- html5学习 一 html5选择器与json新方法html5拖拽
- 剑指offer[一]:二维数组中的查找(java和c++版本)
- 黑马java全套视频教程 黑马javaee传智播客 32期 28期+20套项目
- DOS窗口的一些简单介绍
- python文件和异常
- c++stl的bitset位集合容器
- HTML5拖拽
- 怎么解决VMware“该虚拟机似乎正在使用中”问题
- linux下mysql的安装
- 你可能不知道的陷阱:C#委托和事件的困惑
- hDU 2501-Tiling_easy version
- 常见的语言表示模型(词嵌入、句表示、篇章表示)
- jquery对象和dom对象的区别,如$("#imgId")[0].src; 中[0]的作用
- es6笔记·····fill()
- vue 更新data中的数组