根據瀏覽器的滑動條 固定導航欄
阿新 • • 發佈:2019-01-11
固定導航欄
前言:很多網站都有這種網頁的效果:滑動瀏覽器右側的滾動條,導航欄會一直處於最上方
下面我就來簡單實現以下這個功能
一.首先我們來寫一下html的結構:
1 <div class="top" id="top"></div> 2 <div class="nav" id="nav"></div> 3 <div class="main" id="main"></div>
二.我們來簡單寫一下樣式
這個結構可以說是簡單明瞭,由三部分組成 頂部 導航欄 還有主體部分
但是我們並不打算繼續寫下去 我們簡單的用樣式表達一下 用顏色劃分區域 這個是練習的好方法
1 <style> 2 .top { 3 height: 200px; 4 width: 100%; 5 background-color: #f00; 6 } 7 .nav { 8 height: 150px; 9 background-color: skyblue; 10width: 100%; 11 } 12 .main { 13 margin-top: 100px; 14 height: 1000px; 15 width: 100%; 16 background-color: black; 17 } 18 </style>
三.接著我們來寫一下js的程式碼
1 window.onscroll = function () { 2 if (getScroll().top >= my$("top").offsetHeight){
//利用定位使其固定 脫標3 my$("nav").style.position = "fixed"; 4 my$("nav").style.top = 0;
//設定main 的 margintop 防止由於nav的脫標 main 整體向上移動 而造成下拉過程並不流暢的效果 5 my$("main").style.marginTop = (my$("nav").offsetHeight + 100) + "px"; 6 } 7 else {
//取消設定的東西 然後恢復成原來的樣子 8 my$("nav").style.position = ""; 9 my$("main").style.marginTop = "100px"; 10 } 11 }