【问题标题】:HTML 5 Drag Drop - Get the drop location of dragged elementHTML 5 Drag Drop - 获取被拖动元素的放置位置
【发布时间】:2019-03-08 14:09:09
【问题描述】:

我正在尝试实现一个小部件,您可以在其中将元素拖到容器中。 我想在拖放时获取拖动元素的左上角位置,但 event.offsetY 返回鼠标位置。

我也试过layerY,但这是不对的。

dropped(e) {
  console.log('dropped at', e.offsetX, e.offsetY);
}

有没有简单的获取方法或我可以使用的库?

【问题讨论】:

    标签: javascript html drag-and-drop


    【解决方案1】:

    首先,第一次开始拖动鼠标时,您需要确定鼠标相对于元素的位置。通过将初始的e.offsetXe.offsetY页面进行比较;

    元素 offsetXoffsetY 远离 鼠标的 offsetXoffsetY。这可能会告诉您您开始在距离元素左上角 50 像素 x 60 像素的位置开始拖动;

    let initialPos = {
      x: e.offsetX - element.getBoundingClientRect().left, 
      y: e.offsetY - element.getBoundingClientRect().top
    }
    

    然后,您可以在放置元素时使用此50px 60px 位置来确定元素的左上角相对于您的鼠标的位置。

    【讨论】:

      最近更新 更多