在HTML5中,拖放是规范的一局部,任何元素都能够或许拖放,详细内容以下
1、拖放
XML/HTML Code复制内容到剪贴板 - <!DOCTYPE HTML>
- <html>
- <head>
- <style type="text/css">
- #div1 {width:350px;height:70px;padding:10px;border:1px solid #aaaaaa;}
- </style>
- <script>
- function allowDrop(ev)
- {
- ev.preventDefault();
- }
- function drag(ev)
- {
- ev.dataTransfer.setData("Text",ev.target.id);
- }
- function drop(ev)
- {
- ev.preventDefault();
- var data=ev.dataTransfer.getData("Text");
- ev.target.appendChild(document.getElementById(data));
- }
- </script>
- </head>
- <body>
- <p>拖动 W3CSchool.cc 图片到矩形框中:</p>
- <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
- <br>
- <img id="drag1" src="/images/logo.png" draggable="true" ondragstart="drag(event)" width="336" height="69">
- </body>
- </html>
2、设置元素为可拖放
起首,为了使元素可拖动,把 draggable 属性设置为 true :<img draggable="true">
3、拖动甚么 - ondragstart 和 setData()
而后,划定当元素被拖动时,会产生甚么。在下面的例子中,ondragstart 属性挪用了一个函数,drag(event),它划定了被拖动的数据。dataTransfer.setData() 体例设置被拖数据的数据范例和值:
JavaScript Code复制内容到剪贴板 - function drag(ev)
- {
- ev.dataTransfer.setData("Text",ev.target.id);
- }
在这个例子中,数据范例是 "Text",值是可拖动元素的 id ("drag1")。
4、放到那边 - ondragover
ondragover 事件划定在那边安排被拖动的数据。默许地,没法将数据/元素安排到其余元素中。若是须要设置许可安排,咱们必须禁止对元素的默许处置体例。这要经由过程挪用 ondragover 事件的 event.preventDefault() 体例:event.preventDefault()
5、停止安排 - ondrop
当安排被拖数据时,会产生 drop 事件。在下面的例子中,ondrop 属性挪用了一个函数,drop(event):
JavaScript Code复制内容到剪贴板 - function drop(ev)
- {
- ev.preventDefault();
- var data=ev.dataTransfer.getData("Text");
- ev.target.appendChild(document.getElementById(data));
- }
代码诠释:
挪用 preventDefault() 来避免阅读器对数据的默许处置(drop 事件的默许行动因此链接情势翻开)。经由过程 dataTransfer.getData("Text") 体例取得被拖的数据。该体例将前往在 setData() 体例中设置为不异范例的任何数据。被拖数据是被拖元素的 id ("drag1")。把被拖元素追加到安排元素(方针元素)中。
以上便是本文的全数内容,但愿对大师的进修有所赞助,也但愿大师多多撑持网页设想。