Bootstrap词缀在页面中间开始

时间:2014-08-01 16:33:11

标签: jquery css twitter-bootstrap twitter-bootstrap-3 affix

我想在我的页面上有多个部分,每个部分都有一个堆叠导航。堆叠导航应保留在div部分中。 第一个堆叠导航停留在第一部分。

第二个堆叠导航在滚动时跳到底部和后退。 谁能解释我发生了什么,以及我如何解决这个问题。

演示: http://www.bootply.com/vAT4FJgSMS#

1 个答案:

答案 0 :(得分:2)

您可以通过向他们提供一些识别课程,然后applying affix for each element with the class来一次定位所有可粘贴的侧边栏:

$('.sideNav').each(function() {
    $(this).affix({ /* options */ });
});

然后你只需要为每个部分设置顶部和底部。

$(this).affix({
    offset: {
        top: function(e) {
            var $curSection = $(e).closest('.row');
            return (this.top = $curSection.offset().top - 10);
        },
        bottom: function (e) {
            var $nextSection = $(e).closest('section').next('section');
            //if last element, go to bottom of page
            var bottom = ($nextSection.length === 0) ? 0 :
                         $(document).height() - $nextSection.offset().top;
            return (this.bottom = bottom);
        }
    }
});
当元素不再在affix-topaffix-bottom范围内时,会应用

topbottom。您通常只希望这些元素返回到正常流程,因此您可以像这样设置您的CSS(或者甚至完全忽略,因为relative是默认位置):

.affix-top,
.affix-bottom {
    position: relative;
}

当应用词缀类时,您可以像这样设置列表的样式:

.affix {
    position: fixed !important; 
    top: 10px; 
}

Working Demo in fiddle