レッスンに戻る

フィールドの周りでスーパーヒーローをドラッグする

重要性: 5

このタスクは、ドラッグ&ドロップや DOM のいくつかの側面に対する理解度チェックに役立ちます。

draggable クラス(ドラッグ可能)を持つすべての要素を作成してください。このチャプターのボールのように。

要件:

  • ドラッグ開始を追跡するのに、イベント移譲を使ってください: documentmousedown に対する単一のイベントハンドラを使います。
  • 要素がウィンドウの上下の端にドラッグされた場合、-- つづけてドラッグができるようページをスクロールします。
  • 水平スクロールはありません。
  • ドラッグ可能な要素は、マウスをすばやく移動した後でもウィンドウからは離れません。

デモは大きすぎてここには収まらないため、リンクにします。

新しいウィンドウでデモ

タスクのためのサンドボックスを開く

要素をドラッグするために、 position:fixed を使います。これにより座標が管理しやすくなります。最後には、それを position:absolute に戻す必要があります。

その後、座標がウィンドウの上下端にある場合、window.scrollTo を使ってスクロールします。

より詳細は、コードにあるコメントを見てください。

サンドボックスで解答を開く