【发布时间】:2019-12-17 12:30:40
【问题描述】:
我刚刚学习了 HTML5 可拖放 API 的基础知识。我不知道如何将拖动位置保留在其放置位置。放下它会改变它的位置。
这是基本的 HTML(仅相关元素):
onDragStart = function(ev) {
//...
}
drop_handler = function(ev) {
ev.preventDefault();
ev.target.appendChild(document.getElementById("id1"));
}
dragover_handler = function(ev) {
ev.preventDefault();
ev.dataTransfer.dropEffect = "move";
}
<div id="id1" draggable="true" ondragstart="onDragStart(event)" style="border:2px solid green; cursor:pointer;width:100px;height:50px;">Dragged Div</div>
<div id="id2" style="position:absolute;left:100px;top:200px;border:2px solid red; cursor:pointer;width:200px;height:200px;" ondrop="drop_handler(event)" ondragover="dragover_handler(event)">Drop Div
</div>
我希望被拖动的元素保持在它被放置的最终位置。任何指针将不胜感激。
【问题讨论】:
-
你应该避免在
style标签中放太多东西,而是使用css类 -
如果您希望元素准确地出现在它被放置的位置,您需要在放置元素内使用绝对或相对定位。它正在改变它的位置,因为它仍然是
position: static(默认值),这是浏览器的正常流程...... div 只是在已经存在的文本内容下方。如果您仍然需要这方面的帮助,我可以稍后再写一个正确的答案。
标签: javascript html html5-draggable