<!DOCTYPE html> <html>  <head>     <meta charset='UTF-8'>     <title>Bootstrap滚动监听事件activate.bs.scrollspy详解及应用</title>     <link rel='stylesheet' href='bootstrap-3.3.7-dist/bootstrap.css' />     <script type='text/javascript' src='js/jquery-1.11.0.min.js'></script>     <script type='text/javascript' src='bootstrap-3.3.7-dist/js/bootstrap.js'></script>     <style type='text/css'>         body {             padding: 10px;         }          #navbar {             top: 50px;             right: 10px;             position: fixed;             width: 200px;             background-color: #FFF;         }     </style> </head>  <body>     <div id='navbar'>         <ul class='nav nav-pills nav-stacked'>             <li>                 <a href='#1'>列表1</a>             </li>             <li>                 <a href='#2'>列表2</a>             </li>             <li class='dropdown'>                 <a href='#' data-toggle='dropdown'>下拉列表 <b class='caret'></b></a>                 <ul class='dropdown-menu'>                     <li>                         <a href='#3'>列表3</a>                     </li>                     <li>                         <a href='#4'>列表4</a>                     </li>                     <li>                         <a href='#5'>列表5</a>                     </li>                 </ul>             </li>         </ul>     </div>     <h3 id='1'>列表1</h3>     <p><img src='images/1.jpg'></p>     <h3 id='2'>列表2</h3>     <p><img src='images/2.jpg'></p>     <h3 id='3'>列表3</h3>     <p><img src='images/3.jpg'></p>     <h3 id='4'>列表4</h3>     <p><img src='images/4.jpg'></p>     <h3 id='5'>列表5</h3>     <p><img src='images/5.jpg'></p>     <script type='text/javascript'>          $(document).ready(function () {                           //滚动监听插件事件:scrollspy             $('body').scrollspy({                 target: '#navbar',                 offset: 50             })             // 点击导航菜单             $('#navbar a').click(function (e) {                 e.preventDefault()                 $('html, body').animate({                     scrollTop: $($.attr(this, 'href')).offset().top                 }, 1000)                 return false;             })            })               </script> </body>  </html>滚动监听事件'activate.bs.scrollspy'是Bootstrap框架中的一个事件,它在滚动到指定位置时触发。在给body元素绑定scrollspy插件时,可以通过监听该事件来执行一些自定义的操作。
<p>在上面的代码中,通过以下代码给body元素绑定了scrollspy插件,并设置了目标元素为id为'navbar'的导航栏,偏移量为50:</p>
<p>$('body').scrollspy({    target: '#navbar',    offset: 50})</p>
<p>在scrollspy插件激活时,会触发'activate.bs.scrollspy'事件。可以通过监听该事件,并添加自定义的操作。例如,在上面的代码中,通过以下代码给导航菜单的链接添加了点击事件,当点击导航菜单时,会以动画的方式滚动到对应的位置:</p>
<p>$('#navbar a').click(function (e) {    e.preventDefault();    $('html, body').animate({        scrollTop: $($.attr(this, 'href')).offset().top    }, 1000);    return false;});</p>
<p>这段代码使用了'animate'函数来实现平滑滚动的效果,'scrollTop'属性用于设置滚动条的垂直偏移量,'$.attr(this, 'href')'获取了点击链接的'href'属性值,即目标元素的id,并使用'offset().top'获取该元素相对于文档顶部的垂直偏移量。</p>
<p>所以,当点击导航菜单时,会触发该点击事件,页面会以动画的方式滚动到对应的位置。</p>
Bootstrap滚动监听事件activate.bs.scrollspy详解及应用

原文地址: https://www.cveoy.top/t/topic/pd7T 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录