Bootstrap每天必学之附加导航(Affix)插件


Posted in Javascript onApril 25, 2016

附加导航(Affix)插件允许某个 <div> 固定在页面的某个位置。您也可以在打开或关闭使用该插件之间进行切换。一个常见的例子是社交图标。它们将在某个位置开始,但当页面点击某个标记,该 <div> 会锁定在某个位置,不会随着页面其他部分一起滚动。
如果您想要单独引用该插件的功能,那么您需要引用 affix.js。

一、用法

可以通过 data 属性或者通过 JavaScript 来使用附加导航(Affix)插件。
1、通过 data 属性:如需向元素添加附加导航(Affix)行为,只需要向需要监听的元素添加 data-spy="affix" 即可。请使用偏移来定义何时切换元素的锁定和移动。
2、通过 JavaScript:您可以通过 JavaScript 手动为某个元素添加附加导航(Affix)

二、通过 CSS 定位

在上面两种使用附加导航(Affix)插件的方式中,您都必须通过 CSS 定位内容。附加导航(Affix)插件在三种 class 之间切换,每种 class 都呈现了特定的状态: .affix、.affix-top 和 .affix-bottom。请按照下面的步骤,来为这三种状态设置您自己的 CSS(不依赖此插件)。
1、在开始时,插件添加 .affix-top 来指示元素在它的最顶端位置。这个时候不需要任何的 CSS 定位。
2、当滚动经过添加了附加导航(Affix)的元素时,应触发实际的附加导航(Affix)。此时 .affix 会替代 .affix-top,同时设置 position: fixed;(由 Bootstrap 的 CSS 代码提供)。
3、如果定义了底部偏移,当滚动到达该位置时,应把 .affix 替换为 .affix-bottom。由于偏移是可选的,假如设置了该偏移,则要求同时设置适当的 CSS。在这种情况下,请在必要的时候添加 position: absolute;。

三、选项

有一些选项是通过 data 属性或 JavaScript 来传递的。下表列出了这些选项:

Bootstrap每天必学之附加导航(Affix)插件

四、实例
附加导航即粘贴在屏幕某处实现锚点功能。
1、基本实例

<body data-spy="scroll" data-target="#myScrollspy">

 <div class="container">
 <div class="jumbotron" style="height:150px">
 <h1>Bootstrap Affix</h1>
 </div>
 <div class="row">
 <div class="col-xs-3" id="myScrollspy">
 <ul class="nav nav-pills nav-stacked" data-spy="affix"data-offset-top="150">
  <li class="active">
  <a href="#section-1">第一部分 </a>
  </li>
  <li>
  <a href="#section-2">第二部分</a>
  </li>
  <li>
  <a href="#section-3">第三部分</a>
  </li>
  <li>
  <a href="#section-4">第四部分</a>
  </li>
  <li>
  <a href="#section-4">第五部分</a>
  </li>
 </ul>
 </div>
 <div class="col-xs-9">
 <h2 id="section-1">第一部分</h2>
 <p>
  ...
 </p>
 <h2 id="section-2">第二部分</h2>
 <p>
  ...
 </p>
 <h2 id="section-3">第三部分</h2>
 <p>
  ...
 </p>
 <h2 id="section-4">第四部分</h2>
 <p>
  ...
 </p>
 <h2 id="section-5">第四部分</h2>
 <p>
  ...
 </p>
 </div>

 </div>
 </div>

2、导航的 CSS 部分

ul.nav-pills {
 width: 200px;
}
ul.nav-pills.affix {
 top: 30px;
}
//JavaScript 代替 data-spy="affix" data-offset-top="125"

$('#myAffix').affix({
 offset : {
 top : 150
 }
})

我们默认使用的是 top,当然也可以默认居底 bottom。这个定位方式是直接通过 CSS定位的。

//设置成 bottom

ul.nav-tabs.affix-bottom {
 bottom: 30px;
}
//设置成 bottom

$('#myAffix').affix({
 offset : {
 bottom : 150
 }
})

Affix 包含几个事件,如下:

Bootstrap每天必学之附加导航(Affix)插件

//其他雷同

$('#myAffix').on('affixed-top.bs.affix', function() {
 alert('触发!');
});

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是本文的全部内容,希望对大家的学习有所帮助。 

Javascript 相关文章推荐
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
Sep 20 Javascript
firebug的一个有趣现象介绍
Nov 30 Javascript
根据表格中的某一列进行排序的javascript代码
Nov 29 Javascript
纯javascript实现简单下拉刷新功能
Mar 13 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
Nov 03 Javascript
Extjs实现下拉菜单效果
Apr 01 Javascript
javascript解决小数的加减乘除精度丢失的方案
May 31 Javascript
原生JS+Canvas实现五子棋游戏
May 28 Javascript
angular中ui calendar的一些使用心得(推荐)
Nov 03 Javascript
JavaScript设计模式之享元模式实例详解
Jan 17 Javascript
vue实现动态按钮功能
May 13 Javascript
vue使用keep-alive实现组件切换时保存原组件数据方法
Oct 30 Javascript
Bootstrap项目实战之子栏目资讯内容
Apr 25 #Javascript
深入浅析JavaScript中数据共享和数据传递
Apr 25 #Javascript
Bootstrap项目实战之首页内容介绍(全)
Apr 25 #Javascript
Bootstrap每天必学之响应式导航、轮播图
Apr 25 #Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
Apr 25 #Javascript
下雪了 javascript实现雪花飞舞
Aug 02 #Javascript
基于node实现websocket协议
Apr 25 #Javascript
You might like
用户的详细注册和判断
2006/10/09 PHP
php cookie中点号(句号)自动转为下划线问题
2014/10/21 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
使用javascript访问XML数据的实例
2006/12/27 Javascript
JQuery在页面中添加和除移DOM示例代码
2013/06/24 Javascript
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
js中this用法实例详解
2015/05/05 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
在JavaScript中使用严格模式(Strict Mode)
2019/06/13 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
layui 表格操作列按钮动态显示的实现方法
2019/09/06 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
2020/03/24 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
Python实现把回车符\r\n转换成\n
2015/04/23 Python
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
澳洲最大的时尚奢侈品电商平台:Cettire
2020/06/15 全球购物
趣味运动会活动方案
2014/02/12 职场文书
2016年大学迎新工作总结
2015/10/14 职场文书
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
python多次执行绘制条形图
2022/04/20 Python
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS