使用 Bootstrap 附加導航(Affix)插件 出現各類問題:記錄下解決問題的方式,供你們使用參考,言有不當,歡迎拍磚。css
★ Link點擊後的位置偏移 html
點擊側導航條時,頁面上指定的Link會滾動太高,被頂導航條遮住。這個貌似不是Affix的問題,而是頂導航條固定位置的緣由。也能夠定義到外層div中,這個本身發揮
app
Css代碼 ui
/* Janky fix for preventing navbar from overlapping */ h1[id] { padding-top: 80px; margin-top: -45px; }
原理是好比想要35px的間隙,不能直接寫35px。須要 top padding設置成80px,防止頂導航條遮擋。spa
而後再設置 top margin 爲 -45px,以達到35px的效果。插件
★ 滾動頁面時尺寸會改變
還有個問題就是滾動頁面,當側邊導航條浮起時會改變尺寸。
code
個人解決方式 是 使用 js 來動態更改 它 的 寬度orm
Html代碼 附加導航的代碼結構 htm
<div class="row"> <div class="col-xs-3" id="myScrollspy"> <ul id="affix-ui" class="nav nav-tabs nav-stacked" data-spy="affix" data-offset-top="125"> <li class="active"><a href="#section-1">第一部分</a></li> <li><a href="#section-2">第二部分</a></li> <li><a href="#section-3">第三部分</a></li> <li><a href="#section-4">第四部分</a></li> </ul> </div> <div class="col-xs-9">內容部分</div> </div>
JavaScript代碼 事件
<script> //初始化 $(function(){ updateLogin(); //載入數據 }); //頁面改變事件 window.onresize = function(){ updateLogin(); } //更新數據 function updateLogin() { $("#affix-ui").width($(".col-xs-3").width()); }; </script>