首页 > 解决方案 > 使用 elementFromPoint 拖动后无法获得最接近的元素

问题描述

document.elementFromPoint 定义应插入拖动元素之前或之后的元素。当我使用此方法时,它返回被拖动的项目,而不是要定义的项目。为什么它没有发生,我该如何解决这个错误?

 evt.preventDefault();
 if (!draggedEl) {
   return;
 }
 draggedEl.style.left = `${evt.pageX - draggedEl.offsetWidth / 2}px`;
 draggedEl.style.top = `${evt.pageY - draggedEl.offsetHeight / 2}px`;
 **const closest = document.elementFromPoint(evt.clientX, evt.clientY);**
 const { top } = closest.getBoundingClientRect();
 if (evt.pageY > window.scrollY + top + closest.offsetHeight / 2) {
   // closest.style.paddingBottom = `${draggedElWidth}px`;
 } else {
   // closest.style.paddingTop = `${draggedElWidth}px`;
 }
});

完整代码:https ://github.com/tati-simonenko/ahj6/blob/master/src/js/taskWidget.js

标签: javascript

解决方案


推荐阅读