滾動捲軸,使圖片滑動顯示。
目標
- 當滾動捲軸到「特定定點」時,使圖片滑動顯示。
實踐步驟
- 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()
 取得 目標元素的 大小 與 相對於瀏覽器視窗的位置資訊
