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 相关文章推荐
由浅到深了解JavaScript类
Sep 08 Javascript
JavaScript 创建对象
Jul 17 Javascript
JavaScript中常用的运算符小结
Jan 18 Javascript
js带按钮的提示框可供选择示例代码
Sep 17 Javascript
用js通过url传参把数据从一个页面传到另一个页面
Sep 01 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
Sep 21 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
May 19 Javascript
react-router中的属性详解
Jun 01 Javascript
基于vue2.0动态组件及render详解
Mar 17 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
Jul 03 jQuery
JavaScript运行机制实例分析
Apr 11 Javascript
vue+iview分页组件的封装
Nov 17 Vue.js
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
php 特殊字符处理函数
2008/09/05 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
document.compatMode介绍
2009/05/21 Javascript
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
JS中showModalDialog 的使用解析
2013/04/17 Javascript
JQuery页面的表格数据的增加与分页的实现
2013/12/10 Javascript
JavaScript不刷新实现浏览器的前进后退功能
2014/11/05 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
微信小程序 新建登录页并实现tabBar隐藏
2017/06/13 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
微信小程序常用的3种提示弹窗实现详解
2019/09/19 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
Django框架封装外部函数示例
2019/05/28 Python
Django框架 querySet功能解析
2019/09/04 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
Farfetch台湾官网:奢侈品牌时尚购物平台
2019/06/17 全球购物
Nip + Fab官网:英国美容品牌
2019/08/26 全球购物
四年大学生活的个人自我评价
2013/12/11 职场文书
如何编写优秀的食品项目创业计划书
2014/01/23 职场文书
政治思想表现评语
2014/05/04 职场文书
幸福中国演讲稿
2014/09/12 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
2014年结对帮扶工作总结
2014/12/17 职场文书
浅谈Python列表嵌套字典转化的问题
2021/04/07 Python
用JS写一个发布订阅模式
2021/11/07 Javascript