主要是html5 的拖放(Drag 和 Drop)
例子(不需要对div设置ID):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<!DOCTYPE HTML> <html> <head> <script type="text/javascript"> function allowDrop(ev) { ev.preventDefault(); } var srcdiv = null; function drag(ev,divdom) { srcdiv=divdom; ev.dataTransfer.setData("text/html",divdom.innerHTML); } function drop(ev,divdom) { ev.preventDefault(); if(srcdiv != divdom){ srcdiv.innerHTML = divdom.innerHTML; divdom.innerHTML=ev.dataTransfer.getData("text/html"); } } </script> </head> <body> <div style="width: 50px;height:50px;" οndrοp="drop(event,this)" οndragοver="allowDrop(event)" draggable="true" οndragstart="drag(event, this)"> div1! </div> <div style="width: 50px;height:50px;" οndrοp="drop(event,this)" οndragοver="allowDrop(event)" draggable="true" οndragstart="drag(event, this)"> div2! </div> <div style="width: 50px;height:50px;" οndrοp="drop(event,this)" οndragοver="allowDrop(event)" draggable="true" οndragstart="drag(event, this)"> div3 </div> </body> </html> |
上面函数介绍:
- ondrop: 当放置被拖数据时,会发生 drop 事件,这里自定义drop(event,this)函数,互换两个的innerhtML
- ondraGOver:当拖动链接等有默认事件的元素时,要在onDragover事件中用ev.preventDefault()阻止默认事件。否则drop事件不会触发。
- DRAGGABLE:允许拖动。
- ondragstart:规定当元素被拖动时,会发生什么。在上面的例子中,ondragstart 属性调用了一个函数,drag(event),它规定了被拖动的数据。dataTransfer.setData() 方法设置被拖数据的数据类型和值。
未经允许不得转载:一点博客-青梅煮码-共享博客 » JS实现div块的拖放,调换位置
评论抢沙发