Menu
×
   ❮     
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 固定定位插件 (高级)


固定定位插件

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

插件切换此行为的开和关(更改CSS position的值,从staticfixed),具体取决于滚动位置。

示例 1) 固定导航栏

示例 2) 固定侧边栏

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



如何创建固定导航菜单

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

示例

<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-top.affix-bottom。每个类代表特定状态。您必须添加 CSS 属性来处理实际定位,除了.affix类上的position:fixed

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

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

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

在上面的第一个示例中,固定定位插件在我们从顶部滚动 197 个像素时,将.affix类(position:fixed)添加到<nav>元素。如果您打开示例,您还会看到我们添加了 CSS 的top属性,其值为 0,应用到.affix类。这是为了确保导航栏始终停留在页面的顶部,当我们从顶部滚动 197 个像素时。


滚动侦听 & 固定定位

将固定定位插件与滚动侦听插件一起使用

水平菜单 (导航栏)

<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 固定定位参考


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.