網頁下滾時隱藏header,上滾時才顯示
前言
在 2019 年接案時,曾接到一個需求是,當網頁處在往下滾動狀態時,header是隱藏起來的;而在網頁往上滾動、或網頁已經在最頂端時,header 才會顯示出來。之所以想完成這個效果,可能是想節省空間。因為 header 是讓使用者跳轉到其他頁面的導覽列,而當使用者做出向下滾動網頁的動作時,代表他們需要的是瀏覽後續的網頁。如果在往下滾動時隱藏 header,就能留給使用者更多的螢幕空間去看內容,體驗會更好。
以下是我當時的解法:headroom.js
headroom.js
我記得當時有想過用 CSS 方案(例如 position: sticky
),或是 JS 方案(監測網頁位置,改變 header 的狀態)。在 google 的過程中,剛好看到有 headroom.js 工具,就決定使用它了。headroom.js 同時有 CDN 和 NPM 途徑可使用,對試用或前期開發都用 CDN 的我來說還滿方便的。先附上官網:
引入 headroom.js 的方式如下
1 | // cdn 方案 |
使用的方式也很簡單。如果是預設用法的話,在 header 上加個 class、再搭配官網提供的 JS 初始化程式碼就 OK 了。
1 | <!-- initially --> |
1 | // if you're using a bundler, first import: |
小結
當時因為用 headroom.js 就已解決需求,後續就沒研究細節或其他方案了。若後續若有相關需求的話,我應該會把其他的設定再好好讀一遍。
延伸/參考資源
官方
- Hide your header on scroll - Headroom.js
- WickyNilliams/headroom.js: Give your pages some headroom. Hide your header until you need it
- Headroom.js demo
教學介紹