菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP How to W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Bootstrap Affix 插件 (高级)


Affix 插件

Affix 插件允许一个元素固定(锁定)在页面上的某个区域。这通常用于导航菜单或社交图标按钮,使其在页面上下滚动时“粘”在特定区域。

插件根据滚动位置切换此行为的开启和关闭(更改 CSS position 的值,从 staticfixed)。

示例 1) 固定导航栏

示例 2) 固定侧边栏

使用 Affix,当我们在页面上上下滚动时,菜单始终可见并锁定在其位置。



如何创建固定的导航菜单

以下示例展示了如何创建水平固定的导航菜单

示例

<nav class="navbar navbar-inverse" data-spy="affix" data-offset-top="197">
自己动手试一试 »

以下示例展示了如何创建垂直固定的导航菜单

示例

<ul class="nav nav-pills nav-stacked" data-spy="affix" data-offset-top="205">
自己动手试一试 »

示例解释

data-spy="affix" 添加到您要固定的元素上。

可选地,添加 data-offset-top|bottom 属性来计算滚动的位置。

工作原理

Affix 插件在三个类之间切换:.affix.affix-top.affix-bottom。每个类代表一个特定的状态。您必须添加 CSS 属性来处理实际的位置,除了 .affix 类的 position:fixed

  • 插件会添加 .affix-top.affix-bottom 类来指示元素处于其最顶部或最底部的位置。此时不需要使用 CSS 进行定位。

  • 滚动到固定元素之后会触发实际的固定 - 在这里插件会用 .affix 类替换 .affix-top.affix-bottom 类(设置 position:fixed)。此时,您必须添加 CSS topbottom 属性来在页面上定位固定的元素。

  • 如果定义了底部偏移,滚动到其下方会用 .affix-bottom 替换 .affix 类。由于偏移是可选的,设置一个偏移需要您设置相应的 CSS。在这种情况下,如果需要,添加 position:absolute

在上面的第一个示例中,当我们从顶部滚动了 197 像素后,Affix 插件将 .affix 类(position:fixed)添加到 <nav> 元素上。如果您打开该示例,还会看到我们在 .affix 类中添加了 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 Affix 参考

有关所有 Affix 方法和事件的完整参考,请访问我们的 Bootstrap JS Affix 参考


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持