编辑下面的代码:【加编码】
<html> <head> <style> .droptarget { float: left; width: 100px; height: 35px; margin: 15px; padding: 10px; border: 1px solid #aaaaaa; } </style> </head> <body> <p>在两个矩形框中来回拖动 p 元素:</p> <div class="droptarget"> <p draggable="true" id="dragtarget">拖动我!</p> </div> <div class="droptarget"></div> <p style="clear:both;"><strong>注意:</strong>Internet Explorer 8 及更早 IE 版本或 Safari 5.1 及更早版本的浏览器不支持 drag 事件。</p> <p id="demo"></p> <script> /* Events fired on the drag target */ document.addEventListener("dragstart", function(event) { // The dataTransfer.setData() method sets the data type and the value of the dragged data event.dataTransfer.setData("Text", event.target.id); // Output some text when starting to drag the p element document.getElementById("demo").innerHTML = "开始拖动 p 元素."; // Change the opacity of the draggable element event.target.style.opacity = "0.4"; }); // While dragging the p element, change the color of the output text document.addEventListener("drag", function(event) { document.getElementById("demo").style.color = "red"; }); // Output some text when finished dragging the p element and reset the opacity document.addEventListener("dragend", function(event) { document.getElementById("demo").innerHTML = "完成 p 元素的拖动"; event.target.style.opacity = "1"; }); /* Events fired on the drop target */ // When the draggable p element enters the droptarget, change the DIVS's border style document.addEventListener("dragenter", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = "3px dotted red"; } }); // By default, data/elements cannot be dropped in other elements. To allow a drop, we must prevent the default handling of the element document.addEventListener("dragover", function(event) { event.preventDefault(); }); // When the draggable p element leaves the droptarget, reset the DIVS's border style document.addEventListener("dragleave", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = ""; } }); /* On drop - Prevent the browser default handling of the data (default is open as link on drop) Reset the color of the output text and DIV's border color Get the dragged data with the dataTransfer.getData() method The dragged data is the id of the dragged element ("drag1") Append the dragged element into the drop element */ document.addEventListener("drop", function(event) { event.preventDefault(); if ( event.target.className == "droptarget" ) { document.getElementById("demo").style.color = ""; event.target.style.border = ""; var data = event.dataTransfer.getData("Text"); event.target.appendChild(document.getElementById(data)); } }); </script> </body> </html>
结果: 【此窗口】 帮助?
Try it Yourself - © 自强学堂