Bootstrap JS插件使用实例(10)-附加导航(affix)
2013-06-09 17:32 阅读(216)

bootstrap-affix.js组件,直译过来就是固定,典型的应用就是导航,即当页面内容过多出现滚动条时的浮动导航,如官网页面的左侧导航(下图)。其实这组件很简单,就是通过检测滚动位置来动态的添加或移除 affixaffix-topaffix-bottom 三个样式,来使导航仍然处在一个合适的位置。当采用标记法,页面加载完毕时,JS插件会搜索页面上所有[data-spy="affix"]的元素,然后找其data-offset-top或data-offset-bottom属性,即离页面顶(底)部少于多少px,然后添加或移除上面的三个样式。


下面介绍如何使用


引入文件

<link href="http://www.see-source.com/bootstrap/css/bootstrap.css" rel="stylesheet">
<script type="text/javascript" src="http://www.see-source.com/bootstrap/js/jquery.js"></script>
<script type="text/javascript" src="http://www.see-source.com/bootstrap/js/bootstrap-affix.js"></script>

定义样式

定义.affix .affix-top .affix-bottom样式。具体作用,当页面滚动时

1.当文档的顶端与窗口顶端的距离小于某一设定的值(阀值)时,.affix-top样式将被添加到绑定的元素上,以控制绑定的元素与其父元素顶端的距离,从而控制与窗口顶端的距离

2.当绑定元素的底端与窗口底端的距离小于某一设定的值(阀值)时,.affix-bottom样式将被添加到绑定元素上,以控制绑定的元素与其父元素底端的距离,从而控制与窗口底端的距离

3.其他情况下,绑定元素将具有.affix样式。

ul{background-color:#66FF33;list-style-type:none;}
.affix {
  top: 50px;
}
.affix-top {
  top: 50px;
  position:absolute;
}
.affix-bottom {
  bottom: 40px;
  position:absolute;
}

基本用法

和其他bootstrap插件一样也有俩种设置方法。

1.使用标记

只需把 data-spy="affix" 添加到你想绑定的元素上. 然后使用data-offset-top=""data-offset-bottom="" 来设置阀值。

1.当文档的顶端与窗口顶端的距离小于data-offset-top设置的值时,.affix-top样式将被添加到绑定的元素上

2.当绑定元素的底端与窗口底端的距离小于data-offset-bottom设置的值时.affix-bottom样式将被添加到绑定元素上

demo:

<div data-spy="affix" data-offset-top="200">...</div>
2.使用js

相比于标记法,使用js设置更为灵活,因为它允许为阀值绑定一个函数,在这个函数中我们可以根据情况动态的生成阀值,这对于响应式设计很有用。

如何调用:

$('#navbar').affix(option)


其中参数的用法

名称 类型 默认 描述
offset number | function | object 10  如果只设置了一个数字或设置了一个函数,则俩个阀值都会使用这个数字或函数的返回值 . 如果设置一个对象,可以对俩个阀值分别设置,{offset: { top: 10,bottom:20 }}而其中的属性top、bottom可以是个函数,如top: function () { return $window.width() <= 980 ? 290 : 210 }

完整demo:

css代码

ul{background-color:#66FF33;list-style-type:none;}
.affix {
  top: 50px;
}
.affix-top {
  top: 50px;
  position:absolute;
}
.affix-bottom {
  bottom: 40px;
  position:absolute;
}
html代码
<div class="container">
  <div class="row">
      <div class="span3">
	 <ul id="affix_test">
           <li><a href="#"> 概览</a></li>
          <li><a href="#">过渡效果</a></li>
          <li><a href="#"> 模态对话框</a></li>
          <li><a href="#">下拉菜单</a></li>
          <li><a href="#">滚动监听</a></li>
          <li><a href="#">标签页</a></li>
          <li><a href="#">工具提示</a></li>
          <li><a href="#">弹出提示</a></li>
          <li><a href="#"> 警告框</a></li>
          <li><a href="#">按钮</a></li>
          <li><a href="#"> Collapse</a></li>
          <li><a href="#">轮播</a></li>
          <li><a href="#">输入提示</a></li>
          <li><a href="#">附加导航</a></li>
          </ul>
	  </div>
	  <div class="span9">	      
         <p>
                      全新 iPod nano 薄度仅为 5.4 毫米,几乎如信用卡般大小,比以往所有的 iPod 都更加纤薄。 2.5 英寸 Multi-Touch 显示屏大小几乎是上一代 iPod nano 显示屏的两倍,因此,你钟爱的音乐、照片和视频都能呈现得更加清晰。按钮可让你快速播放、暂停、切换歌曲,也可调节音量。平滑的全新电镀铝金属设计,令 iPod nano 的触感与其音质一样出色。 如果没有绚丽夺目,难以取舍的缤纷色彩,iPod nano 也就不是 iPod nano 了。
         </p>
		 <p>
                      全新 iPod nano 薄度仅为 5.4 毫米,几乎如信用卡般大小,比以往所有的 iPod 都更加纤薄。 2.5 英寸 Multi-Touch 显示屏大小几乎是上一代 iPod nano 显示屏的两倍,因此,你钟爱的音乐、照片和视频都能呈现得更加清晰。按钮可让你快速播放、暂停、切换歌曲,也可调节音量。平滑的全新电镀铝金属设计,令 iPod nano 的触感与其音质一样出色。 如果没有绚丽夺目,难以取舍的缤纷色彩,iPod nano 也就不是 iPod nano 了。
         </p>
		 <p>
                      全新 iPod nano 薄度仅为 5.4 毫米,几乎如信用卡般大小,比以往所有的 iPod 都更加纤薄。 2.5 英寸 Multi-Touch 显示屏大小几乎是上一代 iPod nano 显示屏的两倍,因此,你钟爱的音乐、照片和视频都能呈现得更加清晰。按钮可让你快速播放、暂停、切换歌曲,也可调节音量。平滑的全新电镀铝金属设计,令 iPod nano 的触感与其音质一样出色。 如果没有绚丽夺目,难以取舍的缤纷色彩,iPod nano 也就不是 iPod nano 了。
         </p>
		 <p>
                      全新 iPod nano 薄度仅为 5.4 毫米,几乎如信用卡般大小,比以往所有的 iPod 都更加纤薄。 2.5 英寸 Multi-Touch 显示屏大小几乎是上一代 iPod nano 显示屏的两倍,因此,你钟爱的音乐、照片和视频都能呈现得更加清晰。按钮可让你快速播放、暂停、切换歌曲,也可调节音量。平滑的全新电镀铝金属设计,令 iPod nano 的触感与其音质一样出色。 如果没有绚丽夺目,难以取舍的缤纷色彩,iPod nano 也就不是 iPod nano 了。
         </p>
		 <p>
                      全新 iPod nano 薄度仅为 5.4 毫米,几乎如信用卡般大小,比以往所有的 iPod 都更加纤薄。 2.5 英寸 Multi-Touch 显示屏大小几乎是上一代 iPod nano 显示屏的两倍,因此,你钟爱的音乐、照片和视频都能呈现得更加清晰。按钮可让你快速播放、暂停、切换歌曲,也可调节音量。平滑的全新电镀铝金属设计,令 iPod nano 的触感与其音质一样出色。 如果没有绚丽夺目,难以取舍的缤纷色彩,iPod nano 也就不是 iPod nano 了。
         </p>
		 <p>
                      全新 iPod nano 薄度仅为 5.4 毫米,几乎如信用卡般大小,比以往所有的 iPod 都更加纤薄。 2.5 英寸 Multi-Touch 显示屏大小几乎是上一代 iPod nano 显示屏的两倍,因此,你钟爱的音乐、照片和视频都能呈现得更加清晰。按钮可让你快速播放、暂停、切换歌曲,也可调节音量。平滑的全新电镀铝金属设计,令 iPod nano 的触感与其音质一样出色。 如果没有绚丽夺目,难以取舍的缤纷色彩,iPod nano 也就不是 iPod nano 了。
         </p>
		 <p>
                      全新 iPod nano 薄度仅为 5.4 毫米,几乎如信用卡般大小,比以往所有的 iPod 都更加纤薄。 2.5 英寸 Multi-Touch 显示屏大小几乎是上一代 iPod nano 显示屏的两倍,因此,你钟爱的音乐、照片和视频都能呈现得更加清晰。按钮可让你快速播放、暂停、切换歌曲,也可调节音量。平滑的全新电镀铝金属设计,令 iPod nano 的触感与其音质一样出色。 如果没有绚丽夺目,难以取舍的缤纷色彩,iPod nano 也就不是 iPod nano 了。
         </p>
		 <p>
                      全新 iPod nano 薄度仅为 5.4 毫米,几乎如信用卡般大小,比以往所有的 iPod 都更加纤薄。 2.5 英寸 Multi-Touch 显示屏大小几乎是上一代 iPod nano 显示屏的两倍,因此,你钟爱的音乐、照片和视频都能呈现得更加清晰。按钮可让你快速播放、暂停、切换歌曲,也可调节音量。平滑的全新电镀铝金属设计,令 iPod nano 的触感与其音质一样出色。 如果没有绚丽夺目,难以取舍的缤纷色彩,iPod nano 也就不是 iPod nano 了。
         </p>
		 <p>
                      全新 iPod nano 薄度仅为 5.4 毫米,几乎如信用卡般大小,比以往所有的 iPod 都更加纤薄。 2.5 英寸 Multi-Touch 显示屏大小几乎是上一代 iPod nano 显示屏的两倍,因此,你钟爱的音乐、照片和视频都能呈现得更加清晰。按钮可让你快速播放、暂停、切换歌曲,也可调节音量。平滑的全新电镀铝金属设计,令 iPod nano 的触感与其音质一样出色。 如果没有绚丽夺目,难以取舍的缤纷色彩,iPod nano 也就不是 iPod nano 了。
         </p>
		 <p>
                      全新 iPod nano 薄度仅为 5.4 毫米,几乎如信用卡般大小,比以往所有的 iPod 都更加纤薄。 2.5 英寸 Multi-Touch 显示屏大小几乎是上一代 iPod nano 显示屏的两倍,因此,你钟爱的音乐、照片和视频都能呈现得更加清晰。按钮可让你快速播放、暂停、切换歌曲,也可调节音量。平滑的全新电镀铝金属设计,令 iPod nano 的触感与其音质一样出色。 如果没有绚丽夺目,难以取舍的缤纷色彩,iPod nano 也就不是 iPod nano 了。
         </p>
		 <p>
                      全新 iPod nano 薄度仅为 5.4 毫米,几乎如信用卡般大小,比以往所有的 iPod 都更加纤薄。 2.5 英寸 Multi-Touch 显示屏大小几乎是上一代 iPod nano 显示屏的两倍,因此,你钟爱的音乐、照片和视频都能呈现得更加清晰。按钮可让你快速播放、暂停、切换歌曲,也可调节音量。平滑的全新电镀铝金属设计,令 iPod nano 的触感与其音质一样出色。 如果没有绚丽夺目,难以取舍的缤纷色彩,iPod nano 也就不是 iPod nano 了。
         </p>
		 <p>
                      全新 iPod nano 薄度仅为 5.4 毫米,几乎如信用卡般大小,比以往所有的 iPod 都更加纤薄。 2.5 英寸 Multi-Touch 显示屏大小几乎是上一代 iPod nano 显示屏的两倍,因此,你钟爱的音乐、照片和视频都能呈现得更加清晰。按钮可让你快速播放、暂停、切换歌曲,也可调节音量。平滑的全新电镀铝金属设计,令 iPod nano 的触感与其音质一样出色。 如果没有绚丽夺目,难以取舍的缤纷色彩,iPod nano 也就不是 iPod nano 了。
         </p>
		 <p>
                      全新 iPod nano 薄度仅为 5.4 毫米,几乎如信用卡般大小,比以往所有的 iPod 都更加纤薄。 2.5 英寸 Multi-Touch 显示屏大小几乎是上一代 iPod nano 显示屏的两倍,因此,你钟爱的音乐、照片和视频都能呈现得更加清晰。按钮可让你快速播放、暂停、切换歌曲,也可调节音量。平滑的全新电镀铝金属设计,令 iPod nano 的触感与其音质一样出色。 如果没有绚丽夺目,难以取舍的缤纷色彩,iPod nano 也就不是 iPod nano 了。
         </p>
		 <p>
                      全新 iPod nano 薄度仅为 5.4 毫米,几乎如信用卡般大小,比以往所有的 iPod 都更加纤薄。 2.5 英寸 Multi-Touch 显示屏大小几乎是上一代 iPod nano 显示屏的两倍,因此,你钟爱的音乐、照片和视频都能呈现得更加清晰。按钮可让你快速播放、暂停、切换歌曲,也可调节音量。平滑的全新电镀铝金属设计,令 iPod nano 的触感与其音质一样出色。 如果没有绚丽夺目,难以取舍的缤纷色彩,iPod nano 也就不是 iPod nano 了。
         </p>
		 
			
	  </div>
  </div>
</div>
js代码
$('#affix_test').affix({
      offset: {
        top: function () { return window.width <= 980 ? 50 : 40 }
      , bottom: 50
      }
    })


建议:可以使用浏览器的调试工具观察绑定元素的样式变化,从而很容易就能理解其原理。