当你滚动到顶部并经过顶部时,我有一个顶部贴在顶部但是当你向后滚动到顶部时,它不会返回到原来的位置。
https://jsfiddle.net/5ADzD/754/embedded/result/
function fixDiv() {
var $div = $("#navwrap");
if ($(window).scrollTop() > $div.data("top")) {
$('#navwrap').css({'position': 'fixed', 'top': '0', 'width': '100%'});
}
else {
$('#navwrap').css({'position': 'absolute'});
}
}
$("#navwrap").data("top", $("#navwrap").offset().top); // set original position on load
$(window).scroll(fixDiv);
答案 0 :(得分:2)
您不应将顶部设置回原位。
试试这个:
function fixDiv() {
var $div = $("#navwrap");
var top = $div.data("top");
if ($(window).scrollTop() > top) {
$('#navwrap').css({'position': 'fixed', 'top': '0', 'width': '100%'});
}
else {
$('#navwrap').css({'position': 'absolute', 'top' : top + 'px'}); //set back to absolute and position the top
}
}
$("#navwrap").data("top", $("#navwrap").offset().top); // set original position on load
$(window).scroll(fixDiv);

#container {
padding: 100px 0 2500px;
}
#navwrap{
position:absolute;
width: 100%;
height: 50px;
background-color: #C00;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="container">
<div id="navwrap">NAV WRAP</div>
</div>
&#13;
答案 1 :(得分:0)
在else
区块中,使用排名relative
或static
。这样,它就会返回到原来的布局位置。
http://jsfiddle.net/5ADzD/756/
那是因为absolute
非常像fixed
,其中元素从布局中取出。区别在于fixed
保持不变,absolute
跟随(相对于下一个定位的祖先)。