bootstrap滾動(dòng)監(jiān)控器使用方法解析
滾動(dòng)監(jiān)控器
1、當(dāng)用戶鼠標(biāo)滾動(dòng)時(shí),滾動(dòng)條的位置會(huì)自動(dòng)更新導(dǎo)航條中相應(yīng)的導(dǎo)航項(xiàng)。
這是因?yàn)樵摬寮梢宰詣?dòng)檢測(cè)滾動(dòng)條到達(dá)哪個(gè)位置,然后在需要高亮的菜單元素上加了一個(gè)“active”樣式。
滾動(dòng)監(jiān)控器–滾動(dòng)監(jiān)控器的設(shè)計(jì)
第一步:使用滾動(dòng)監(jiān)控器,首要的條件是在頁(yè)面中加載對(duì)應(yīng)的插件。在這里你可以加載合并好的bootstrap.js或者其獨(dú)立的插件文件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>
第二步:設(shè)計(jì)一個(gè)帶有下拉菜單的導(dǎo)航條。分別為導(dǎo)航條和下拉菜單項(xiàng)定義一個(gè)錨點(diǎn)鏈接,錨點(diǎn)分別為“#blog”,“html”,“#css”,“#sass”,“#js”,“php”,“#about”。同時(shí)為導(dǎo)航條定義一個(gè)id值“navbar-menu”(id名稱可自由定義),方便滾動(dòng)監(jiān)控。
第三步:設(shè)計(jì)監(jiān)控對(duì)象。這里將監(jiān)控對(duì)象內(nèi)容都放置在一個(gè)div名為scrollspy(這個(gè)類名可自由定義)的容器中,其中放了多個(gè)子內(nèi)容框。每個(gè)子內(nèi)容框有一個(gè)標(biāo)題,而且每個(gè)標(biāo)題的ID值與導(dǎo)航菜單項(xiàng)中的錨點(diǎn)鏈接名相對(duì)應(yīng),并且注意加入“data-target=”#navbar-menu””屬性(這個(gè)屬性值要與前面的nav標(biāo)簽的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)控對(duì)象定義樣式,設(shè)置容器scrollspy大?。ㄔO(shè)置高度目的是為了產(chǎn)生垂直滾動(dòng)條)。
.scrollspy{ height:500px; font-size:20px; overflow:auto; }
滾動(dòng)監(jiān)控器–聲明屬性觸發(fā)滾動(dòng)監(jiān)控
為監(jiān)控對(duì)象設(shè)置被監(jiān)控的data屬性:data-spy=”scroll”,指定監(jiān)控的導(dǎo)航條:data-target=”#navbar-menu”。同時(shí)定義監(jiān)控過程中滾動(dòng)條偏移位置data-offset=”60”。代碼如下:
<div class="scrollspy" data-spy="scroll" data-target="#navbar-menu" data-offset="60"> … </div>
滾動(dòng)監(jiān)控器–在body中加監(jiān)控
還可以直接在body上進(jìn)行滾動(dòng)條監(jiān)控,此時(shí)要將滾動(dòng)監(jiān)控器移到body上,而且導(dǎo)航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>
導(dǎo)航條必須設(shè)置為頂部固定樣式(navbar-fixed-top)
滾動(dòng)監(jiān)控器–JavaScript方法觸發(fā)滾動(dòng)監(jiān)控器
在Bootstrap框架中,使用JavaScript方法觸發(fā)滾動(dòng)監(jiān)控器相對(duì)來說較為簡(jiǎn)單,只需要指定兩個(gè)容器的名稱即可
<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的滾動(dòng)監(jiān)控還提供了一個(gè)方法scrollspy(“refresh”)。當(dāng)滾動(dòng)監(jiān)控所作用的DOM有增加或刪除頁(yè)面元素的操作時(shí),需要調(diào)用下面的refresh方法:
$(function(){ $("[data-spy='scroll']").each(function(){ var $spy=$(this).scrollspy("refresh"); }) })
注意的是,這種refresh方法只對(duì)聲明式用法有效。另外滾動(dòng)監(jiān)控除了options參數(shù)“target”之外,還提供了一個(gè)offset參數(shù),此參數(shù)默認(rèn)值為10。默認(rèn)情況下,滾動(dòng)內(nèi)容距離滾動(dòng)容器10px以內(nèi)的話,就高一片面前顯示所對(duì)應(yīng)的菜單項(xiàng)。
滾動(dòng)監(jiān)實(shí)例 :
<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"> <!----導(dǎo)航容器--> <nav role="navigation" class="navbar navbar-default navbar-static" id="navbar-example2"> <div class="container-fluid"> <div class="navbar-header"> <!----點(diǎn)擊這個(gè)按鈕時(shí),觸發(fā)bs-example-js-navbar-scrollspy: 這個(gè)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> <!----導(dǎo)航標(biāo)題--> <a href="#" class="navbar-brand">導(dǎo)航標(biāo)題</a> </div> <!----折疊菜單容器--> <div class="collapse navbar-collapse bs-example-js-navbar-scrollspy"> <!----導(dǎo)航--> <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> <!----導(dǎo)航結(jié)束--> </div> </div> </nav> 滾動(dòng)監(jiān)對(duì)象 <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>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- BootStrap下拉菜單和滾動(dòng)監(jiān)聽插件實(shí)現(xiàn)代碼
- 學(xué)習(xí)Bootstrap滾動(dòng)監(jiān)聽 附調(diào)用方法
- 全面解析Bootstrap中scrollspy(滾動(dòng)監(jiān)聽)的使用方法
- Bootstrap教程JS插件滾動(dòng)監(jiān)聽學(xué)習(xí)筆記分享
- Bootstrap滾動(dòng)監(jiān)聽(Scrollspy)插件詳解
- Bootstrap每天必學(xué)之滾動(dòng)監(jiān)聽
- 值得分享的最全面Bootstrap快速人門案例
- 值得分享的Bootstrap Table使用教程
- 值得分享和收藏的Bootstrap學(xué)習(xí)教程
- BootStrap的table表頭固定tbody滾動(dòng)的實(shí)例代碼
相關(guān)文章
用原生JS實(shí)現(xiàn)簡(jiǎn)單的多選框功能
這篇文章主要介紹了用原生JS實(shí)現(xiàn)簡(jiǎn)單的多選框功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-06-06基于JS實(shí)現(xiàn)Android,iOS一個(gè)手勢(shì)動(dòng)畫效果
這篇文章主要介紹了基于JS實(shí)現(xiàn)Android,iOS一個(gè)手勢(shì)動(dòng)畫效果 的相關(guān)資料,需要的朋友可以參考下2016-04-04Javascript 變量作用域 兩個(gè)可能會(huì)被忽略的小特性
關(guān)于Javascript,大家肯定都很熟悉啦,對(duì)于有編程經(jīng)驗(yàn)的朋友來說,Javascript很快就能上手,不過關(guān)于JS的變量作用域,還是有一點(diǎn)差別的。2010-03-03JS實(shí)現(xiàn)點(diǎn)擊按鈕控制Div變寬、增高及調(diào)整背景色的方法
這篇文章主要介紹了JS實(shí)現(xiàn)點(diǎn)擊按鈕控制Div變寬、增高及調(diào)整背景色的方法,涉及javascript動(dòng)態(tài)操作頁(yè)面元素屬性的相關(guān)技巧,適用于動(dòng)態(tài)更換頁(yè)面皮膚的功能,需要的朋友可以參考下2015-08-08javascript generator生成器函數(shù)與asnyc/await語(yǔ)法糖
本文主要介紹了javascript generator生成器函數(shù)與asnyc/await語(yǔ)法糖,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03不用typsescript如何使用類型增強(qiáng)功能
這篇文章主要給大家介紹了關(guān)于不用typsescript如何使用類型增強(qiáng)功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03