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 相关文章推荐
替代window.event.srcElement效果的可兼容性的函数
Dec 18 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
Mar 04 Javascript
JSONObject使用方法详解
Dec 17 Javascript
JavaScript继承模式粗探
Jan 12 Javascript
jQuery实现的多滑动门,多选项卡效果代码
Mar 28 Javascript
浅析JS异步加载进度条
May 05 Javascript
浅谈Javascript中的Label语句
Dec 14 Javascript
angular2倒计时组件使用详解
Jan 12 Javascript
Require.JS中的几种define定义方式示例
Jun 01 Javascript
详解Angular如何正确的操作DOM
Jul 06 Javascript
了解JavaScript函数中的默认参数
May 30 Javascript
vue实现多组关键词对应高亮显示功能
Jul 25 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
亚洲咖啡有什么?亚洲咖啡产地介绍 亚洲咖啡有什么特点?
2021/03/05 新手入门
php设计模式之观察者模式的应用详解
2013/05/21 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
Javascript 错误处理的几种方法
2009/06/13 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
2013/06/26 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
2017/01/13 Javascript
如何快速上手Vuex
2017/02/14 Javascript
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
Three.js基础学习教程
2017/11/16 Javascript
Vue中 key keep-alive的实现原理
2018/09/18 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
Python中的下划线详解
2015/06/24 Python
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
Python3.2模拟实现webqq登录
2016/02/15 Python
Python 如何访问外围作用域中的变量
2016/09/11 Python
详解Python用户登录接口的方法
2019/04/17 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
HTML5 video播放器全屏(fullScreen)方法实例
2015/04/24 HTML / CSS
澳大利亚自然和有机的健康美容产品一站式商店:Ziani Beauty
2017/12/28 全球购物
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
经理管理专业自荐信范文
2013/12/31 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书
python编写函数注意事项总结
2021/03/29 Python