我遇到了一些内容问题,当页面向下滚动时会在固定元素下消失。下面的JS小提琴很好地展示了它。 基本上,7号以上的内容跳过固定导航元素。我假设在将标题放在顶部后,必须有一个简单的{padding-top:100px;}通过js应用于body。
<div id="ontop">something</div>
<header>navigation - stays on top when scrolling</header>
<div id="wrapper">
1<br/>2<br/>3<br/>4<br/>5<br/>6<br/>
7 - wrapper disappears above this point while scrolling down<br/>
8<br/>9<br/>10<br/>
</div>
CSS:
#ontop {width:100%; height:80px; background-color:yellow;}
header {width:100%; height:100px; background-color:lightgrey;}
#wrapper {background-color:lightblue; height:5000px;}
.navfixed {position: fixed; top: 0px; z-index: 100; width:100%; display:block; margin-bottom:120px;}
最后是JS:
$(function () {
var elem = $('aside'),
elemTop = elem.offset().top;
$(window).scroll(function () {
elem.toggleClass('fixed', $(window).scrollTop() > elemTop);
}).scroll();
});
感谢您的帮助
答案 0 :(得分:3)
需要在滚动时将#wrapper
元素的上边距设置为切换wrapperBelow
类
$(function () {
var elem = $('header'),
wrapperElem = $('#wrapper'),
elemTop = elem.offset().top;
$(window).scroll(function () {
elem.toggleClass('navfixed', $(window).scrollTop() > elemTop);
wrapperElem.toggleClass('wrapperBelow', $(window).scrollTop() > elemTop);
}).scroll();
});
#ontop {width:100%; height:80px; background-color:yellow;}
header {width:100%; height:100px; background-color:lightgrey;}
#wrapper {background-color:lightblue; height:5000px;}
.navfixed {position: fixed; top: 0px; z-index: 100; width:100%; display:block; margin-bottom:120px;}
.wrapperBelow{
margin-top:112px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="ontop">something</div>
<header>navigation - stays on top when scrolling</header>
<div id="wrapper">
1<br/>2<br/>3<br/>4<br/>5<br/>6<br/>
7 - wrapper disappears before this while scrolling<br/>
8<br/>9<br/>10<br/>
</div>