滾動捲軸,使圖片滑動顯示。
目標
- 當滾動捲軸到「特定定點」時,使圖片滑動顯示。
實踐步驟
CSS的動畫效果
- transition
- transform、translateX、scale
監聽scroll滾動事件,並取得相關高度的資訊,進行判斷
window.scrollY
window.innerHeight
HTMLElement.height
HTMLElement.offsetTop
成品
JS學習紀錄
減緩呼叫function的時間
因為監聽scroll的事件,當畫面滾動時,會在短時間觸發好幾次Event,
所以為了降低對效能上的影響,作者寫了一個debounce
的函式,
用來降低觸發的間隔時間。
1 | // 減緩呼叫function的時間 |
各種高度的取得及運用
程式的邏輯:
- 當
window.scrollY
移動到 圖片一半以上 的位置時,將圖片顯示 - 當 圖片底部 已超過
window.scrollY
的位置時,將圖片隱藏
1 | function handleShowImage(e){ |
window.scrollY
目前瀏覽器視窗已滾動的Y軸(垂直位置)window.innerHeight
目前瀏覽器視窗的高度(不含 上方功能列及開發者工具 區塊)HTMLElement.offsetTop
取得 DOM元素 相對於在父元素頂部距離的位置HTMLImageElement.height
圖片本身的高度(此屬性不是每個DOM元素都有)
可額外參考的方法:
- Element.getBoundingClientRect()
取得 目標元素的 大小 與 相對於瀏覽器視窗的位置資訊