Bootstrap ScrollSpy滚动监听插件使用详解

作者:拾光

时间:2026-10-30

浏览:463

本文详细介绍Bootstrap中的ScrollSpy滚动监听插件。通过data属性或JavaScript两种方式实现导航跟随滚动效果,讲解offset选项配置、refresh方法刷新及activate.bs.scrollspy事件监听,帮助开发者快速掌握该组件的核心用法。

文章目录

本文主要介绍JavaScript插件中的滚动监听功能。

滚动监听案例与用法

1、案例

滚动监听插件能够根据页面滚动条的位置,自动高亮并更新对应的导航标记。您可以尝试滚动当前页面,观察左侧导航栏的变化效果。

首先展示实现代码,您可以通过测试代码预览实际效果。


<!DOCTYPE html>
 <html>
 <head>
 <title>Bootstrap</title>
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <!-- Bootstrap -->
 <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
 <!--[if lt IE 9]>
 <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js">
</script>
 <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js">
</script>
 <![endif]-->
  <style type="text/css"> .scrollspy-example
   {
    height: 200px;
    overflow: auto;
   position: relative;
   border:1px solid red;
  }
 </style>
 </head>
 <body>
<div class="container" >
  <nav id="navbar-example" class="navbar navbar-default navbar-static" role="navigation"> 
  <div class="navbar-header">
   <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-js-navbar-scrollspy">
   <span class="sr-only">Toggle navigation</span>
   <span class="icon-bar"></span>
   <span class="icon-bar"></span>
   <span class="icon-bar"></span>
   </button>
   <a class="navbar-brand" href="#">Project Name</a>
  </div>
  <div class="collapse navbar-collapse bs-js-navbar-scrollspy">
   <ul class="nav navbar-nav">
   <li class="active"><a href="#fat">@fat</a></li>
   <li><a href="#mdo">@mdo</a></li>
   <li class="dropdown">
    <a href="#" id="navbarDrop1" class="dropdown-toggle" data-toggle="dropdown">Dropdown
 <b class="caret"></b></a>
    <ul class="dropdown-menu" role="menu" aria-labelledby="navbarDrop1">
    <li><a href="#one" tabindex="-1">one</a></li>
    <li><a href="#two" tabindex="-1">two</a></li>
    <li class="divider"></li>
    <li><a href="#three" tabindex="-1">three</a></li>
    </ul>
   </li>
   </ul>
  </div>
  </nav>
  <div data-offset="0" class="scrollspy-example" data-spy="scroll" data-target="#navbar-example">
  <h4 id="fat">@fat</h4>
  <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold
 out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan
 mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie
 minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson
 aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
  <h4 id="mdo">@mdo</h4>
  <p>Veniam marfa mustache skateboard, adipisicing fugiat velit pitchfork beard.
 Freegan beard aliqua cupidatat mcsweeney's vero. Cupidatat four loko nisi, ea helvetica nulla carles. 
Tattooed cosby sweater food truck, mcsweeney's quis non freegan vinyl. Lo-fi wes anderson +1
 sartorial. Carles non aesthetic exercitation quis gentrify. Brooklyn adipisicing craft beer vice keytar
 deserunt.</p>  <h4 id="one">one</h4>  <p>Occaecat commodo aliqua delectus.
 Fap craft beer deserunt skateboard ea. Lomo bicycle rights adipisicing banh mi, velit ea sunt next
 level locavore single-origin coffee in magna veniam. High life id vinyl, echo park consequat quis
 aliquip banh mi pitchfork. Vero VHS est adipisicing. Consectetur nisi DIY minim messenger bag. 
Cred ex in, sustainable delectus consectetur fanny pack iphone.</p>
  <h4 id="two">two</h4>
  <p>In incididunt echo park, officia deserunt mcsweeney's proident master cleanse thundercats
 sapiente veniam. Excepteur VHS elit, proident shoreditch +1 biodiesel laborum craft beer. Single-origin
 coffee wayfarers irure four loko, cupidatat terry richardson master cleanse. Assumenda you probably
 haven't heard of them art party fanny pack, tattooed nulla cardigan tempor ad. Proident wolf nesciunt
 sartorial keffiyeh eu banh mi sustainable. Elit wolf voluptate, lo-fi ea portland before they sold out four
 loko. Locavore enim nostrud mlkshk brooklyn nesciunt.</p>
  <h4 id="three">three</h4>
  <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold
 out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan
 mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg
 hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes 
 anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
  <p>Keytar twee blog, culpa messenger bag marfa whatever delectus food truck. Sapiente
 synth id assumenda. Locavore sed helvetica cliche irony, thundercats you probably haven't heard
 of them consequat hoodie gluten-free lo-fi fap aliquip. Labore elit placeat before they sold out,
 terry richardson proident brunch nesciunt quis cosby sweater pariatur keffiyeh ut helvetica artisan.
 Cardigan craft beer seitan readymade velit. VHS chambray laboris tempor veniam. Anim mollit
 minim commodo ullamco thundercats. </p>
  </div>
 </div>
 <script src="js/jquery-2.0.3.min.js">
</script>
 <script src="js/bootstrap.min.js">
</script>
 </body>
 </html>  

用法1:通过data属性

为需要监听的页面元素(通常是一个div)添加data-spy="scroll"属性,即可轻松为顶部导航条启用滚动监听功能。同时,需添加data-target属性,其值指向Bootstrap中.nav组件父元素的ID或class。

代码如下:

<div data-offset="0" class="scrollspy-example" data-spy="scroll" data-target="#navbar-example">
 ........ 
</div>

导航链接地址必须有对应的目标

导航条内的链接地址必须对应页面中具有相同ID值的元素。

用法2:通过JavaScript

通过JavaScript启动滚动监听:


  <script type="text/javascript"> $(function () {
  $('.scrollspy-example').scrollspy({ target:'#navbar-example' });
  }) </script>

将样式类为scrollspy-example的div去掉data-target属性,同样可以实现鼠标滚轮切换效果。

滚动监听方法与选项

2、方法

.scrollspy('refresh')

使用滚动监听插件时,每当页面中从DOM中增加或删除页面元素时,都需要调用此方法以,如下:

代码如下:

$('[data-spy="scroll"]').each(function () { var $spy = $(this).scrollspy('refresh') })

3、选项

可以将选项通过data属性或JavaScript传递。对于data属性,需要将选项名称放到data-之后,例如data-offset=""。

滚动监听案例与用法

滚动监听事件与注意事项

4、事件


 <script type="text/javascript"> $('#navbar-example').on('activate.bs.scrollspy', function () {
   alert(1);
 }) </script>

最后注意:针对滚动监听的内容当然要添加滚动条,也就是要预先添加样式


  <style type="text/css"> .scrollspy-example
   {
    height: 200px;
    overflow: auto;
   position: relative;
   border:1px solid red;
  }
 </style>

给与Div内容一定的高度。

以上就是Bootstrap滚动监听相关内容的学习笔记,如果大家还想继续学习Bootstrap,可以点击这里,继续学习,希望对大家的学习有所帮助,也希望大家继续关注本站的更多精彩内容。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章