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 JS 固定


JS 固定 (affix.js)

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

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

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

有关更多信息,请阅读我们的 Bootstrap 固定教程

提示:固定插件通常与 滚动间谍 插件一起使用。


通过 data-* 属性

在要监视的元素上添加 data-spy="affix",并在 data-offset-top|bottom="number" 属性中添加计算滚动位置的属性。

示例

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

通过 JavaScript

使用以下方法手动启用

示例

$('.nav').affix({offset: {top: 150} });
亲自试一试 »


固定选项

选项可以通过 data 属性或 JavaScript 传递。对于 data 属性,将选项名称追加到 data-,例如 data-offset="”。

名称 类型 默认值 描述
offset 数字 | 对象 | 函数 10 指定在计算滚动位置时从屏幕偏移的像素数。使用单个数字时,偏移量会添加到顶部和底部方向。如果您只想控制顶部或底部,请使用对象,例如 offset: {top:25}

对于多个偏移量,使用 offset: {top:25, bottom:50}

提示:使用函数动态提供偏移量(对于响应式设计很有用)
target 选择器 | 节点 | 元素 窗口对象 指定固定的目标元素

固定事件

下表列出了所有可用的固定事件。

事件 描述 试一试
affix.bs.affix 在元素添加固定定位之前发生(例如,当 .affix-top 类即将被 .affix 类替换时) 试一试
affixed.bs.affix 在元素添加固定定位之后发生(例如,在 .affix-top 类被 .affix 类替换之后) 试一试
affix-top.bs.affix 在顶部元素返回其原始(非固定)位置之前发生(例如,.affix 类即将被 .affix-top 替换) 试一试
affixed-top.bs.affix 在顶部元素返回其原始(非固定)位置之后发生(例如,.affix 类已被 .affix-top 替换) 试一试
affix-bottom.bs.affix 在底部元素返回其原始(非固定)位置之前发生(例如,.affix 类即将被 .affix-bottom 替换) 试一试
affixed-bottom.bs.affix 在底部元素返回其原始(非固定)位置之后发生(例如,.affix 类已被 .affix-bottom 替换) 试一试

更多示例

固定的导航栏

创建一个水平固定的导航菜单

示例

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

使用 jQuery 自动固定导航栏

使用 jQuery 的 outerHeight() 方法,在用户滚动经过指定元素(<header>)后固定导航栏

示例

$(".navbar").affix({offset: {top: $("header").outerHeight(true)} });
亲自试一试 »

滚动间谍和固定

将固定插件与 滚动间谍 插件一起使用

水平菜单(导航栏)

<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>
亲自试一试 »

固定时的动画导航栏

使用 CSS 操作不同的 .affix 类

示例 - 滚动时更改导航栏的背景颜色和填充

.affix {
  top: 0;
  width: 100%;
  -webkit-transition: all .5s ease-in-out;
  transition: all .5s ease-in-out;
  background-color: #F44336;
  border-color: #F44336;
}

.affix a {
  color: #fff !important;
  padding: 15px !important;
  -webkit-transition: all .5s ease-in-out;
  transition: all .5s ease-in-out;
}

.affix-top a {
  padding: 25px !important;
}
亲自试一试 »

示例 - 滑入导航栏

.affix {
  top: 0;
  width: 100%;
  -webkit-transition: all .5s ease-in-out;
  transition: all .5s ease-in-out;
}

.affix-top {
  position: static;
  top: -35px;
}
亲自试一试 »

×

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.