详解BootStrap中Affix控件的使用及保持布局的美观的方法

 更新时间:2016年07月08日 09:46:10   作者:乡间小路   我要评论
Affix是BootStrap中的一个很有用的控件,他能够监视浏览器的滚动条的位置并让你的导航始终都在页面的可视区域。本文重点给大家介绍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控件的使用及保持布局的美观的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对澳门金沙网上娱乐网站的支持!

相关文章

  • javascript实现节点(div)名称编辑

    javascript实现节点(div)名称编辑

    这篇文章主要介绍了js实现节点(div)名称编辑,需要的朋友可以参考下
    2014-12-12
  • javascript原生封装一个淡入淡出效果的函数测试实例代码

    javascript原生封装一个淡入淡出效果的函数测试实例代码

    这篇文章主要介绍了javascript原生封装一个淡入淡出效果的函数,主要有FadeIn淡入函数和FadeOut淡出函数,需要的朋友可以参考下
    2018-03-03
  • 学习JavaScript编程语言的8张思维导图分享

    学习JavaScript编程语言的8张思维导图分享

    这篇文章主要介绍了学习JavaScript编程语言的8张思维导图分享,本文给出了javascript变量、javascript运算符、javascript数组、javascript流程语句、javascript字符串函数、javascript函数基础、javascript基础DOM操作、javascript正则表达式的思维导图,需要的可以参考下
    2015-03-03
  • 关于List.ToArray()方法的效率测试

    关于List.ToArray()方法的效率测试

    这篇文章主要介绍了关于List.ToArray()方法的效率测试的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • 微信小程序中如何使用flyio封装网络请求

    微信小程序中如何使用flyio封装网络请求

    这篇文章主要介绍了微信小程序中如何使用flyio封装网络请求,Fly.js 通过在不同 JavaScript 运行时通过在底层切换不同的 Http Engine来实现多环境支持,但同时对用户层提供统一、标准的Promise API,需要的朋友可以参考下
    2019-07-07
  • 详解小程序毫秒级倒计时(适用于拼团秒杀功能)

    详解小程序毫秒级倒计时(适用于拼团秒杀功能)

    这篇文章主要介绍了小程序毫秒级倒计时,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 深入了解Hybrid App技术的相关知识

    深入了解Hybrid App技术的相关知识

    这篇文章主要介绍了深入了解Hybrid App技术的相关知识,Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具" Native App良好用户交互体验的优势 "和" Web App跨平台开发的优势 ",需要的朋友可以参考下
    2019-07-07
  • js严格模式总结(分享)

    js严格模式总结(分享)

    下面小编就为大家带来一篇js严格模式总结(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • TreeView 用法(有代码)(asp.net)

    TreeView 用法(有代码)(asp.net)

    TreeView 用法,后台结合asp.net需要的朋友可以参考下。
    2011-07-07
  • ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案

    ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案

    这篇文章主要介绍了ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案,在文章中用到了angularjs的指令知识点,对ionic隐藏底部导航栏知识感兴趣的朋友一起学习吧
    2016-11-11

最新评论