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