滚动监听

Bootstrap的滚动监听插件(scrollspy.js)能够根据滚动的位置,自动更新导航条中相应的导航项。

什么是滚动监听?先看一个简单的例子:假设页面上有两个区域,一个是导航区域,一个是内容区域。导航区域的每个链接,都指向内容区域的一个锚点。这样的话,点击导航上的某个链接,就可以跳转到内容区域的相应锚点。

滚动监听,就是实现内容区域和导航链接的反向关联。简单地讲,就是在滚动内容区域时,能够自动更新导航中的导航项。例如,当滚动到内容区域的某个锚点时,导航中对应的链接自动高亮显示。

使用方法

滚动监听插件的使用方法非常简单,因为它背后的所有工作,Bootstrap已经替我们做好了。我们只需定义相应的结构,并设置几个属性就可以了。

首先,定义导航条,并让导航链接指定相应的目标锚点,如 href="#fat" 等。同时,还要为导航条定义一个 id 值,如 id="navbar",以方便滚动监听。

  1. <nav id="navbar" class="navbar navbar-default navbar-static">
  2.   <ul class="nav navbar-nav">
  3.     <li class="active"><a href="#fat">@fat</a></li>
  4.     <li class=""><a href="#mdo">@mdo</a></li>
  5.     ...
  6.   </ul>
  7. </nav>

然后,定义内容区域,其中包含多个锚点,它们分别与导航链接中的目标锚点相呼应。锚点可以通过元素的 id 指定,这里在每个标题定义锚点,如 id="fat" 等。如:

  1. <div>
  2.   <h4 id="fat">@fat</h4>
  3.   <p>Ad leggings keytar, brunch id art ...</p>
  4.   <h4 id="mdo">@mdo</h4>
  5.   <p>Veniam marfa mustache ...</p>
  6.   ...
  7. </div>

如果希望滚动内容区域时,能够自动更新导航中的链接,还需要为内容区域的元素定义 data-spy="scroll" 属性和 data-target 属性。data-target 属性的值是一个选择器,让它指向监听对象。这里的监听对象就是导航条,就可以把data-target 属性的值设置为导航条的 id:

  1. <div data-spy="scroll" data-target="#navbar">
  2.   <h4 id="fat">@fat</h4>
  3.   ...
  4. </div>

现在,拖动内容区域右侧的滚动条,当滚动区域到达锚点 @mdo 时,导航条中的菜单项 @mdo 就会自动高亮显示。这是因为滚动监听插件能够监听滚动达到的位置,并自动为导航条的相应导航项添加了.active 类让它高亮显示。效果如图 4‑3所示:

图4-3 滚动监听

如果导航中包含下拉菜单,并且滚动区域内容到达下拉菜单所对应的区域,除了子菜单高亮以外,子菜单的父元素也会高亮。子菜单会虽然高亮,但不会自动展开,如果手动点击下拉菜单,就能看到效果。效果如图 4‑4所示:

图4-4 滚动监听子菜单

关于作者

歪脖先生,十五年以上软件开发经验,酷爱Web开发,精通 HTML、CSS、JavaScript、jQuery、JSON、Python、Less、Bootstrap等,著有《HTML宝典》、《揭秘CSS》、《Less简明教程》、《JSON教程》、《Bootstrap2用户指南》、《Bootstrap3实用教程》,并全部在 GitHub 上开源。

Bootstrap3 滚动监听的使用方法相关推荐

  1. Bootstrap3 滚动监听插件的方法

    滚动监听插件的方法 通过 JavaScript 调用滚动监控插件时,如果监听对象的DOM节点有增删元素的操作,则需要调用 .scrollspy('refresh') 方法来更新DOM. <scr ...

  2. Bootstrap3 滚动监听插件的调用方式

    滚动监听插件的调用方式 无论何种实现方式,滚动监听都需要被监听的组件是position: relative;即相对定位方式.大多数时候是监听<body>元素. 1.data属性调用 只需给 ...

  3. Bootstrap3 滚动监听插件的事件

    滚动监听插件的事件 Bootstrap为滚动监听插件提供了一个事件 activate.bs.scrollspy,每当一个新的导航项目被激活时,就会触发该事件,并自动为导航条的相应菜单项添加了一个 .a ...

  4. Bootstrap3 滚动监听插件的选项

    滚动监听插件的选项 Bootstrap为滚动监听插件提供了一个选项 offset,用来调整滚动位置距顶部偏移的像素值,取值为数字,默认值为10.正值表示滚动条向上偏移,负值表示向下偏移. offset ...

  5. js 滚动监听,核心方法

    vue使用 export default { data:{}, //挂在完成 mounted () { window.addEventListener('scroll', function); }, ...

  6. vue 滑动置顶功能_VUE 实现滚动监听 导航栏置顶的方法_蜡烛_前端开发者

    非重点的代码,比如样式啥的,我就不放上来了,一笔带过 简略的写一下 1. data () data () { paddingBottom: '1.5rem', // 给最外层div一个padding- ...

  7. Bootstrap 滚动监听Scrollspy 调用方式

    调用方式 1.data属性调用 只需给监听对象定义 data-spy="scroll" 属性及 data-target 属性,就可以激活滚动监听插件. data-target 属性 ...

  8. Bootstrap 滚动监听

    滚动监听 Bootstrap滚动监听插件Scrollspy能够根据滚动的位置,自动更新导航条中相应的导航项. 滚动监听插件需要 bootstrap-scrollspy.js 文件支持,在使用该插件之前 ...

  9. 4.18、Bootstrap V4自学之路-----内容---滚动监听

    为什么80%的码农都做不了架构师?>>>    总体来说,用起来不是特别满意,先放一放吧. 导航条示例 滚动监听插件会根据滚动的位置,自动更新导航条的目标.滚动在导航条下面的区域,查 ...

最新文章

  1. github下载慢,轻松提速教程
  2. c++稀疏表sparse table的实现算法(附完整源码)
  3. 对struts一点理解总结
  4. cesium three性能比较_Go学习_21_Golang代码性能检测Benchmark
  5. 蚂蚁(51Nod-1266)
  6. java fastdfs 压测_利用jmeter+JAVA对RPC的单接口(dubbo接口等)进行性能测试,零基础(2)...
  7. Android开发笔记(四十一)Service的生命周期
  8. 【WCF】错误处理(二):错误码―—FaultCode
  9. VLFeat在matlab中的使用
  10. python中遇到的问题_python中遇到的一些问题及解决方案
  11. 使用CODERUN部署阿里云KUBERNETES
  12. windows 微信多开脚本
  13. VC2012学习笔记(控件)
  14. 今夜,只我一人听雨声
  15. postgresql索引_PostgreSQL中的索引— 9(BRIN)
  16. Adobe_Acrobat_Pro_DC_2022.003.20314 下载安装
  17. MySQL窗口函数简介
  18. 【演讲实录+视频】走近40+世界级AI专家!第三届中国人工智能大会资料分享(直播进行中_不断更新)
  19. 8255a初始化c语言程序,单片机8255型号大全(工作字的选择,单片机连接,初始化程序分析)...
  20. 文件操作opendir()/readdir()/closedir()/stat()

热门文章

  1. CRUD全栈式编程架构之控制器的设计
  2. Java把科学计数法转换为字符串
  3. 在单位用oracle备份到磁带的脚本(看不明白的地方交流)
  4. mac下的secureCRT.8的设置
  5. Java集合系列---红黑树(基于HashMap 超详细!!!)
  6. 使用MyEclipse建立working set
  7. How To Install IonCube Loader
  8. 全面认识Eclipse中JVM内存设置(转)
  9. HaspMap 多线程下 resize 死循环
  10. github(GitHub Flavored Markdown)