我希望我的页面上有多个部分,每个部分都有一个堆叠的导航。堆叠导航应保留在部分 div 中。第一个堆叠导航位于第一部分。
第二个堆叠导航在滚动时跳到底部并返回。谁能解释我发生了什么,以及我该如何解决这个问题。
演示: http: //www.bootply.com/vAT4FJgSMS#
我希望我的页面上有多个部分,每个部分都有一个堆叠的导航。堆叠导航应保留在部分 div 中。第一个堆叠导航位于第一部分。
第二个堆叠导航在滚动时跳到底部并返回。谁能解释我发生了什么,以及我该如何解决这个问题。
演示: http: //www.bootply.com/vAT4FJgSMS#
您可以一次定位所有可附加的侧边栏,方法是为它们提供一些标识类,然后为每个具有该类的元素应用词缀:
$('.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-top
affix-bottom
当元素不再在 and 的范围内时应用top
and bottom
。您通常只希望这些元素返回正常流程,因此您可以像这样设置您的 css(甚至完全忽略,因为相对是默认位置):
.affix-top,
.affix-bottom {
position: relative;
}
应用词缀类时,您可以像这样设置列表的样式:
.affix {
position: fixed !important;
top: 10px;
}