bootstrap滾動監(jiān)控器使用方法解析
滾動監(jiān)控器
1、當用戶鼠標滾動時,滾動條的位置會自動更新導航條中相應的導航項。
這是因為該插件可以自動檢測滾動條到達哪個位置,然后在需要高亮的菜單元素上加了一個“active”樣式。
滾動監(jiān)控器–滾動監(jiān)控器的設計
第一步:使用滾動監(jiān)控器,首要的條件是在頁面中加載對應的插件。在這里你可以加載合并好的bootstrap.js或者其獨立的插件文件scrollspy.js。這里以加載合并好的js為例:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
第二步:設計一個帶有下拉菜單的導航條。分別為導航條和下拉菜單項定義一個錨點鏈接,錨點分別為“#blog”,“html”,“#css”,“#sass”,“#js”,“php”,“#about”。同時為導航條定義一個id值“navbar-menu”(id名稱可自由定義),方便滾動監(jiān)控。

第三步:設計監(jiān)控對象。這里將監(jiān)控對象內(nèi)容都放置在一個div名為scrollspy(這個類名可自由定義)的容器中,其中放了多個子內(nèi)容框。每個子內(nèi)容框有一個標題,而且每個標題的ID值與導航菜單項中的錨點鏈接名相對應,并且注意加入“data-target=”#navbar-menu””屬性(這個屬性值要與前面的nav標簽的id名稱保持一致)
<div class="scrollspy" data-target="#navbar-menu"> <h4 id="blog">Blog</h4> <p>…</p> <h4 id="html">Html</h4> <p>…</p> <h4 id="css">CSS</h4> <p>…</p> <h4 id="sass">Sass</h4> <p>…</p> <h4 id="js">JavaScript</h4> <p>…</p> <p>…</p> <h4 id="php">PHP</h4> <p>…</p> <p>…</p> <h4 id="about">About</h4> <p>…</p> <p>…</p> </div>
第四步:為監(jiān)控對象定義樣式,設置容器scrollspy大?。ㄔO置高度目的是為了產(chǎn)生垂直滾動條)。
.scrollspy{
height:500px;
font-size:20px;
overflow:auto;
}
滾動監(jiān)控器–聲明屬性觸發(fā)滾動監(jiān)控
為監(jiān)控對象設置被監(jiān)控的data屬性:data-spy=”scroll”,指定監(jiān)控的導航條:data-target=”#navbar-menu”。同時定義監(jiān)控過程中滾動條偏移位置data-offset=”60”。代碼如下:
<div class="scrollspy" data-spy="scroll" data-target="#navbar-menu" data-offset="60"> … </div>
滾動監(jiān)控器–在body中加監(jiān)控
還可以直接在body上進行滾動條監(jiān)控,此時要將滾動監(jiān)控器移到body上,而且導航nav一定要在body內(nèi)部。
<body data-spy="scroll" data-target="#navbar-menu"> <div class="navbar navbar-default navbar-fixed-top" id="navbar-menu"> </div> <h3 id="blog">Blog</h3> <p>…</p> </body>
導航條必須設置為頂部固定樣式(navbar-fixed-top)
滾動監(jiān)控器–JavaScript方法觸發(fā)滾動監(jiān)控器
在Bootstrap框架中,使用JavaScript方法觸發(fā)滾動監(jiān)控器相對來說較為簡單,只需要指定兩個容器的名稱即可
<nav id="navbar-menu" class="navbar navbar-default navbar-static" role="navigation"> … </nav> <div class="scrollspy" id="scrollspy"> … </div>
JavaScript觸發(fā)可以這樣寫:
$(function(){
$("#scrollspy").scrollspy({
target: "#navbar-menu"
});
})
Bootstrap的滾動監(jiān)控還提供了一個方法scrollspy(“refresh”)。當滾動監(jiān)控所作用的DOM有增加或刪除頁面元素的操作時,需要調(diào)用下面的refresh方法:
$(function(){
$("[data-spy='scroll']").each(function(){
var $spy=$(this).scrollspy("refresh");
})
})
注意的是,這種refresh方法只對聲明式用法有效。另外滾動監(jiān)控除了options參數(shù)“target”之外,還提供了一個offset參數(shù),此參數(shù)默認值為10。默認情況下,滾動內(nèi)容距離滾動容器10px以內(nèi)的話,就高一片面前顯示所對應的菜單項。
滾動監(jiān)實例 :
<link rel="stylesheet" >
<style>
.scrollspy-example{
height:500px;
font-size:20px;
overflow:auto;
}
</style>
</head>
<body>
<div class="bs-docs-section">
<div class="bs-example">
<!----導航容器-->
<nav role="navigation" class="navbar navbar-default navbar-static" id="navbar-example2">
<div class="container-fluid">
<div class="navbar-header">
<!----點擊這個按鈕時,觸發(fā)bs-example-js-navbar-scrollspy: 這個css類,也就是下拉列表-->
<button data-target=".bs-example-js-navbar-scrollspy" data-toggle="collapse" type="button" class="navbar-toggle collapsed">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!----導航標題-->
<a href="#" class="navbar-brand">導航標題</a>
</div>
<!----折疊菜單容器-->
<div class="collapse navbar-collapse bs-example-js-navbar-scrollspy">
<!----導航-->
<ul class="nav navbar-nav">
<li><a href="#fat">@fat</a></li>
<li><a href="#mdo">@mdo</a></li>
<li class="dropdown">
<a aria-expanded="false" role="button" data-toggle="dropdown" class="dropdown-toggle" id="navbarDrop1" href="#">Dropdown <span class="caret"></span></a>
<ul aria-labelledby="navbarDrop1" role="menu" class="dropdown-menu">
<li><a tabindex="-1" href="#one">one</a></li>
<li><a tabindex="-1" href="#two">two</a></li>
<!----分割線-->
<li class="divider"></li>
<li><a tabindex="-1" href="#three">three</a></li>
</ul>
</li>
</ul>
<!----導航結(jié)束-->
</div>
</div>
</nav>
滾動監(jiān)對象
<div class="scrollspy-example" data-offset="0" data-target="#navbar-example2" data-spy="scroll">
<h4 id="fat">@fat</h4>
<p>Ad leggings keytar,</p>
<h4 id="mdo">@mdo</h4>
<p>Veniam marfa mustache skateboard</p>
<h4 id="one">one</h4>
<p>Occaecat commodo aliqua delectus.</p>
<h4 id="two">two</h4>
<p>In incididunt echo park, officia deserunt mcsweeney's </p>
<h4 id="three">three</h4>
<p>Ad leggings keytar</p>
<p>Keytar twee blog</p>
</div>
</div>
</div>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
RGB顏色值轉(zhuǎn)HTML十六進制(HEX)代碼的JS函數(shù)
轉(zhuǎn)到固定長度的十六進制字符串,不夠則補0 javascript找出一個背景色的數(shù)值,只好自己解析2009-04-04
?javascript數(shù)組中的lastIndexOf方法
這篇文章主要介紹了?javascript數(shù)組中的lastIndexOf方法,該方法可返回一個指定的字符串值最后出現(xiàn)的位置,在一個字符串中的指定位置從后向前搜索,下文詳細內(nèi)容需要的小伙伴可以參考一下2022-03-03
webpack使用Symbol.toStringTag(Symbol.toStringTag用法)
Symbol.toStringTag是一個內(nèi)置 symbol,它通常作為對象的屬性鍵使用,對應的屬性值應該為字符串類型,這個字符串用來表示該對象的自定義類型標簽,這篇文章主要介紹了webpack使用Symbol.toStringTag(Symbol.toStringTag用法),需要的朋友可以參考下2024-02-02
分享js粘帖屏幕截圖到web頁面插件screenshot-paste
這篇文章主要為大家分享了js粘帖屏幕截圖到web頁面插件screenshot-paste的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-03-03
JS實現(xiàn)動態(tài)生成表格并提交表格數(shù)據(jù)向后端
這篇文章主要為大家詳細介紹了JS實現(xiàn)動態(tài)生成表格并提交表格數(shù)據(jù)向后端的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-01-01
TypeScript實現(xiàn)數(shù)組和樹的相互轉(zhuǎn)換
樹或者圖是個比較抽象的概念,并不存在這樣的數(shù)據(jù)類型。數(shù)組就比較簡單了,因此數(shù)組和樹的轉(zhuǎn)換可以理解為數(shù)組和對象之間的轉(zhuǎn)換。本文將用TypeScript實現(xiàn)數(shù)組和樹的相互轉(zhuǎn)換,感興趣的可以了解一下2022-06-06

