基本上我想要实现的是,只要它在滚动时遇到主导航的底部,就会让辅助导航粘在主导航的底部。我还在学习jQuery,而且我已经开始撕掉我的头发了!
编辑:意识到我没有解释到目前为止我到达的地方;该类正被添加到元素中,但不是固定在主标题下面,而是从视口中移出。
编辑2:JSFiddle
如果有人能提供一些帮助/建议,我会非常感激!
外标题高度:160px
标记如下:
HTML
<div class="outer-header" id="header">
<header>
....
</header>
</div>
<div id="page-wrap">
<div class="upper-content">
.....
</div>
<nav id="secondary_nav">
....
</nav>
CSS
.sticky{
position: fixed;
top: 206px; /*top of viewport + height of secondary nav and outer-header*/
}
JS
var stickyNavTop = $('#secondary_nav').offset().top - 160;
var stickyNav = function(){
var scrollTop = $(window).scrollTop();
if (scrollTop > stickyNavTop) {
$('#secondary_nav').addClass('sticky');
} else {
$('#secondary_nav').removeClass('sticky');
}
};
stickyNav();
$(window).scroll(function() {
stickyNav();
});
答案 0 :(得分:0)
这应该有效:
.sticky{
position: fixed !important;
top: 160px;
}
答案 1 :(得分:0)
你的代码是99%。您只需要更好地指定类以阻止它被覆盖。
DEMO http://jsfiddle.net/H9Bz3/27/
#secondary_nav.sticky{
position: fixed;
top: 160px;
}
更新:
为确保顶部的高度正确,我会根据outter-header
DEMO http://jsfiddle.net/H9Bz3/28/
jQuery(document).ready(function($){
//Sticky
var stickyNavTop = $('#secondary_nav').offset().top - 160;
var topHeight = $('.outer-header').outerHeight();
var stickyNav = function(){
var scrollTop = $(window).scrollTop();
if (scrollTop >= stickyNavTop) {
$('#secondary_nav').css({
'position': 'fixed',
'top': topHeight+'px'
});
} else {
$('#secondary_nav').css({
'position': 'relative',
'top': '0'
});
}
};
stickyNav();
$(window).scroll(function() {
stickyNav();
});
});