返回课程

在场地中拖动超级英雄

重要性:5

此任务可以帮助您检查对拖放和 DOM 的几个方面的理解。

使所有具有类 draggable 的元素可拖动。就像本章中的球一样。

要求

  • 使用事件委托来跟踪拖动开始:在 document 上使用一个单一的事件处理程序来处理 mousedown
  • 如果元素被拖动到窗口的顶部/底部边缘,页面将向上/向下滚动以允许进一步拖动。
  • 没有水平滚动(这使得任务更简单,添加它很容易)。
  • 可拖动元素或其部分永远不会离开窗口,即使在快速鼠标移动后也是如此。

演示太大,无法在这里显示,因此这里有一个链接。

在新窗口中演示

为任务打开一个沙盒。

为了拖动元素,我们可以使用position:fixed,它使坐标更容易管理。最后,我们应该将其切换回position:absolute,以将元素放置到文档中。

当坐标位于窗口顶部/底部时,我们使用window.scrollTo来滚动它。

代码中的更多细节,在注释中。

在沙盒中打开解决方案。