1. 程式人生 > >在小屏幕和手機屏幕下,Bootstrap導航欄的自動折疊隱藏

在小屏幕和手機屏幕下,Bootstrap導航欄的自動折疊隱藏

false ans alt ron -h header func nta AS

遇到的問題:

  最近在使用Bootstrap框架做網頁時發現,在小屏幕和手機屏幕之下(max-width: 768px),導航欄不能在點擊導航鏈接時,自動折疊導航欄。或者在展開導航欄後,如果不點擊其中的導航鏈接,用戶在選擇滑動屏幕時,不能做到自動折疊導航欄。需要用戶手動點擊折疊按鈕,才能收回去。這在小屏幕寶貴的顯示面積內,顯然不合理,用戶體驗也不好。

  我用一張動圖來更好的說明這個問題:

  技術分享圖片

解決方法:

先看HTML代碼:

 1 <!-- HTML-->
 2 <nav class="navbar navbar-fixed-top">
 3   <div 
class="container"> 4 <!-- navbar-header --> 5 <div class="navbar-header"> 6 <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> 7 <span class="sr-only">Toggle navigation</
span> 8 <span class="icon-bar"></span> 9 <span class="icon-bar"></span> 10 <span class="icon-bar"></span> 11 </button> 12 <a class="navbar-brand" href="#">Project Name</a> 13 </div> 14 <!-- navbar-nav
--> 15 <div id="navbar" class="navbar-collapse collapse"> 16 <ul class="nav navbar-nav"> 17 <li class="active"><a href="#">Home</a></li> 18 <li><a href="#features">Features</a></li> 19 <li><a href="#about_me">About me</a></li> 20 </ul> 21 </div> 22 </div> 23 </nav>

Bootstrap中折疊(Collapse)的方法如下:

方法描述實例
Options:.collapse(options) 激活內容為可折疊元素。接受一個可選的 options 對象。
$(‘#identifier‘).collapse({
    toggle: false
})
Toggle:.collapse(‘toggle‘) 切換顯示/隱藏可折疊元素。
$(‘#identifier‘).collapse(‘toggle‘)
Show: .collapse(‘show‘) 顯示可折疊元素。
$(‘#identifier‘).collapse(‘show‘)
Hide: .collapse(‘hide‘) 隱藏可折疊元素。
$(‘#identifier‘).collapse(‘hide‘)

知道collapse的方法之後,問題就容易解決得多了,只需要用戶滾動或者點擊導航鏈接時,調用.collapse(‘hide‘)方法,就可以實現自動折疊導航欄了。

JavaScript代碼如下:

 1 $(window).scroll(function () {
 2   //小屏幕下的導航條折疊
 3   if ($(window).width() < 768) {
 4     //點擊導航鏈接之後,把導航選項折疊起來
 5     $("#navbar a").click(function () {
 6       $("#navbar").collapse(‘hide‘);
 7     });
 8     //滾動屏幕時,把導航選項折疊起來
 9     $(window).scroll(function () {
10       $("#navbar").collapse(‘hide‘);
11     });
12   }
13 });

實現導航欄自動折疊的效果如下:

技術分享圖片

希望這篇文章對遇到相同問題的人有幫助!

在小屏幕和手機屏幕下,Bootstrap導航欄的自動折疊隱藏