在场地中拖动超级英雄
重要性:5
此任务可以帮助您检查对拖放和 DOM 的几个方面的理解。
使所有具有类 draggable
的元素可拖动。就像本章中的球一样。
要求
- 使用事件委托来跟踪拖动开始:在
document
上使用一个单一的事件处理程序来处理mousedown
。 - 如果元素被拖动到窗口的顶部/底部边缘,页面将向上/向下滚动以允许进一步拖动。
- 没有水平滚动(这使得任务更简单,添加它很容易)。
- 可拖动元素或其部分永远不会离开窗口,即使在快速鼠标移动后也是如此。
演示太大,无法在这里显示,因此这里有一个链接。
为了拖动元素,我们可以使用position:fixed
,它使坐标更容易管理。最后,我们应该将其切换回position:absolute
,以将元素放置到文档中。
当坐标位于窗口顶部/底部时,我们使用window.scrollTo
来滚动它。
代码中的更多细节,在注释中。