您的位置:88bifa必发唯一官网 > 必发88首页 > 它是通过实时修改页面元素的class属性来实现的

它是通过实时修改页面元素的class属性来实现的

发布时间:2019-07-09 01:57编辑:必发88首页浏览(183)

    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控件的使用及保持布局的美观的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    您可能感兴趣的文章:

    • BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
    • bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
    • 精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)
    • Bootstrap布局之栅格系统详解
    • Bootstrap每天必学之栅格系统(布局)
    • 谈一谈bootstrap响应式布局
    • Bootstrap布局方式详解
    • JS组件Bootstrap Table布局详解
    • Bootstrap三种表单布局的使用方法
    • Bootstrap 布局组件(全)
    • 全面解析Bootstrap布局组件应用
    • 全面解析bootstrap格子布局
    • Bootstrap实现的经典栅格布局效果实例【附demo源码】

    本文由88bifa必发唯一官网发布于必发88首页,转载请注明出处:它是通过实时修改页面元素的class属性来实现的

    关键词: 必发88首页