我正在使用 HTML5 原生拖放。
我在查找可拖动元素相对于其父容器的位置时遇到问题。
任务总结
我有一个“位置:相对”的 div,我认为它是一个“可放置区域”。在这个 div 中,我有几个“位置:绝对”图像元素,我已将它们标记为可拖动。我希望这些图像可以由用户自由移动。
要设置元素的位置,我在“dragend”上有一个监听器。
end top / left 变量必须基于百分比而不是像素。
当前尝试
下面你可以看到我的尝试:
draggable.addEventListener('dragend', function (event) {
event.preventDefault();
//Gets the position of the two elements relative to the viewport
var droppableBoundingRect = droppable.getBoundingClientRect();
//Establishes the percentage using the droppable height and width
var draggableXPercentage = ((event.clientX - droppableBoundingRect.left) / droppable.clientWidth) * 100;
var draggableYPercentage = ((event.clientY - droppableBoundingRect.top) / droppable.clientHeight) * 100;
//Set the positional elements of the draggable element
event.target.style.top = draggableYPercentage + "%";
event.target.style.left = draggableXPercentage + "%";
}, false);
这是我希望工作的 JSFiddle,评论显示了我期望每个部分做什么:
https://jsfiddle.net/oL8yd9Lr/
也许我在错误的森林里寻找错误的树。我会很感激任何指导。