用于拖放的拖动事件与鼠标事件

Anu*_*g P 8 javascript drag-and-drop drag dom-events

最近我开始学习拖放 API,并从这个开始学习Youtube 上的一些教程,很好,理解了整个Drag Cycle.

但是我看到了其他一些没有使用的教程drag但拖动功能是使用mouseup, mousedown,mousemove事件创建的。

我目前正在研究Vanilla JS

我仍在努力寻找答案——

  1. 为什么要使用mouse事件而不是drag事件?使用mouse事件可以完成的事情是否不能使用事件完成drag

  2. 如果是这种情况,在哪些情况下使用drag不起作用?或者使用mouse事件不起作用?

  3. 如何选择实现drag and drop功能的方式?这两种方法有什么优点或缺点吗?

  4. 还有什么办法吗?(我的意思是除了mouse事件和drag事件)

Woo*_*ody 8

我不知道为什么你的问题获得了两票接近的票数?我认为这是一个足够合理的问题,有一个 HTML 拖放 API,但大多数实现使用鼠标事件和绝对定位。您总是可以说出这一点,因为它们将拖动限制在您开始拖动的浏览器页面上。

HTML5 拖放允许您在浏览器“外部”拖动并与其他应用程序交互。例如,您可以在浏览器选项卡之间拖放,也可以从文字处理器拖放数据,然后使用拖放 API 将其拖放到您的 Web 应用程序中。您还可以从 Web 应用程序中拖动内容并将其放在本机应用程序上。

例如,您不能使用 jquery 可拖动 API 之类的东西执行上述任何操作。如果您想在页面周围移动元素,那么 jquery 可拖动方法更容易实现,例如,拖放 API 将“幻影”拖动的元素,而如果它是绝对定位的,您只需更新它在鼠标上的坐标移动等

这是我几年前使用 HTML5 拖放实现的可排序列表

我的建议是 - 如果您想在同一页面中移动元素,即重新定位事物,或者您不需要在浏览器选项卡之间拖动或接受来自其他应用程序的数据,HTML 5 DnD 可能会令人沮丧。

希望这可以帮助。