Bootstrap 附加导航插件 (高级)
附加导航插件
附加导航(Affix)插件允许指定元素固定在页面的某个位置。这通常与导航菜单或社交图标按钮一起使用,使它们锁定在某个位置,不会随着页面其他部分一起滚动。
该插件根据滚动位置来打开和关闭该行为(将CSS position 的值从 static 更改 fixed)。
实例 1) 附加顶部导航栏:
实例 2) 附加侧边导航栏:
使用附加导航插件,当我们上下滚动页面时,菜单始终可见并锁定在固定位置。
如何创建附加导航菜单
以下示例显示了如何创建水平附加导航菜单:
以下示例显示了如何创建垂直附加导航菜单:
实例解析
将 data-spy="affix" 添加到要附加的元素中。
(可选)添加 data-offset-top|bottom 属性以计算滚动的位置。
工作原理
附加插件在三个类之间切换: .affix, .affix-top, 和
.affix-bottom。每个类代表一个特定的状态。您必须添加 CSS 属性来处理实际位置, .affix 类上的 position:fixed 除外。
- 该插件添加
.affix-top或.affix-bottom类,以指示元素处于其最顶端或最底端的位置。此时不需要使用 CSS 进行定位。 - 当滚动经过附加的元素会触发附加-这是插件用
.affix类 (设置position:fixed) 替换.affix-top或.affix-bottom类的地方。此时,必须添加 CSStop或bottom属性,以便在页面中定位附加的元素。 - 如果定义了底部偏移量,滚动过去它会将
.affix类替换为.affix-bottom类。由于偏移量是可选的,因此设置偏移量需要设置适当的CSS。在这种情况下,必要时添加position:absolute。
在上面的第一个示例中,当我们从顶部滚动 197 个像素时,Affix 插件将 .affix 类 (position:fixed)
添加到 <nav> 元素中。如果你打开这个例子,你还会看到我们在 .affix 类中添加了 CSS top 属性,它的值为0。
这是为了确保当我们从页面顶部滚动197个像素时,导航栏始终位于页面顶部。
滚动监听 & 附加导航
将附加导航(Affix)插件与 滚动监听(Scrollspy) 插件一起使用:
水平菜单(导航栏)
<body data-spy="scroll" data-target=".navbar" data-offset="50">
<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
...
</nav>
</body>
亲自试一试 »
垂直菜单 (侧边)
<body data-spy="scroll" data-target="#myScrollspy" data-offset="15">
<nav class="col-sm-3" id="myScrollspy">
<ul class="nav nav-pills nav-stacked" data-spy="affix" data-offset-top="205">
...
</nav>
</body>
亲自试一试 »
完整 Bootstrap 附加导航参考
有关附加导航的完整参考,请访问 Bootstrap JS 附加导航参考。

