详解BootStrap中Affix控件的使用及保持布局的美观的方法
来源: 阅读:593 次 日期:2016-07-25 15:30:19
温馨提示: 小编为您整理了“详解BootStrap中Affix控件的使用及保持布局的美观的方法”,方便广大网友查阅!

Affix是BootStrap中的一个很有用的控件,他能够监视浏览器的滚动条的位置并让你的导航始终都在页面的可视区域。一开始的时候,导航在页面中是普通的流式布局,占有文档中固定的位置,当页面滚动的时候,导航就自动变成了固定布局(fixed),始终处于用户的视区,下面来说说他的用法。首先来看看他的实现原理。它是通过实时修改页面元素的class属性来实现的

开始的时候应用affix的元素的class中会自动添加affxi-top属性。

当滚动条滚动以至于导航快要到页面顶部的时候这时候在元素的class中会将affix-top变为affix。

当拖动滚动条到页面底部的时候,affix又会自动变为affix-bottom。

以上过程完全有控件自己实现,无须我们干预,我们只需要写好这些状态的css就可以了。

如我们可以设置

.affix-top

{

top:150px;

}

.affix

{

top:20px;//通常用bootstrap构建的网站头部都有个导航条

}

.affix-bottom

{

……

}

下面我们看看它的使用方法

1、通过data属性

你只需为需要监听的页面元素添加data-spy="affix"即可。然后使用偏移量来确定一个元素的开和关. 

<ul class="nav nav-tabs nav-stacked affix" data-spy="affix"

data-offset-top="190">

<li class="active"><a href="#one">Tutorial One</a></li>

<li><a href="#two">Tutorial Two</a></li>

<li><a href="#three">Tutorial Three</a></li>

</ul>

其中data-offset-top为处于affix-top状态元素距离页面顶端的位置。当滚动到页面顶端的使用我们可以设置".affix"的样式来重新设置其"top"值。

2、通过javascript调用

示例代码如下:

$('#myNav').affix({

offset: {

top: 100,//滚动中距离页面顶端的位置

bottom: function () {//滚动完成时距离页面底部的位置

return (this.bottom = 

$('.bs-footer').outerHeight(true))

}

}

})

HTML代码如下(只展示核心代码):

<ul class="nav nav-tabs nav-stacked affix" id="myNav">

<li class="active"><a href="#one">Tutorial One</a></li>

<li><a href="#two">Tutorial Two</a></li>

<li><a href="#three">Tutorial Three</a></li>

</ul>

……

<div class="bs-footer">

</div>

以上似乎已经介绍完了bootstrap中affix的使用,但是在实际使用的过程中我们会发现,当拖动滚动条的时候使用了affix的页面元素的宽度会发生变化,从而导致页面布局的杂乱,所以我们在定义affix的css中最好写死它的宽度如:

.affix{

width:250px;

}

这样在视窗足够大的时候是没有任何问题的,但是当拖动改变视窗的大小后会发现布局又变乱了,这个问题困扰了我许久,最后通过分析bootcss的源码我发现该网站在所有使用affix的元素的class中都添加了"hidden-print" "hidden-xs" "hidden-sm"这些属性,用于当屏幕不是符合要求的情况下可以隐藏affix,虽然影响了易用性,但是保证了布局无论在哪种情况下都是整齐的。 

以上所述是小编给大家介绍的详解BootStrap中Affix控件的使用及保持布局的美观的方法,希望对大家有所帮助

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map