返回課程

將超級英雄拖曳到場上

重要性:5

這個任務可以幫助您檢查對拖放和 DOM 的幾個面向的理解。

讓所有具有 draggable 類別的元素都可以拖曳。就像章節中的球一樣。

需求

  • 使用事件委派來追蹤拖曳開始:在 document 上針對 mousedown 的單一事件處理常式。
  • 如果元素被拖曳至頂部/底部視窗邊緣,頁面會向上/向下捲動以允許進一步拖曳。
  • 沒有水平捲動(這讓任務變得更簡單,加入它很簡單)。
  • 可拖曳元素或其部分永遠不應離開視窗,即使在快速滑動滑鼠之後。

示範太大,無法在此處顯示,因此這裡有連結。

在新視窗中示範

開啟一個沙盒以進行任務。

若要拖曳元素,我們可以使用 position:fixed,它讓座標更容易管理。最後我們應將它切換回 position:absolute 以將元素置入文件。

當座標位於視窗頂部/底部時,我們使用 window.scrollTo 來捲動它。

在程式碼中有更多詳細資訊,在註解中。

在沙盒中開啟解決方案。