有人可以告诉我为什么在向上滚动时,#page
的顶部START
仍然在标题下吗?
提前致谢
CSS :
*
{
margin: 0;
padding: 0;
}
#header, #page, #footer
{
float: left;
display: block;
width: 100%;
}
#header
{
background: #CCCCCC;
}
#default
{
display: block;
height: 100px;
background: #64D989;
}
#sticky
{
display: none;
height: 50px;
background: #D9D164;
}
#footer
{
background: #EEEEEE;
}
JS :
$(document).ready(function ()
{
$(window).bind("scroll", function (e)
{
if ($(document).scrollTop() >= 100)
{
$("#header").css('position', 'fixed');
$("#default").css('display', 'none');
$("#sticky").css('display', 'block');
}
else
{
$("#header").css('position', 'fixed');
$("#sticky").css('display', 'none');
$("#default").css('display', 'block');
}
});
});
HTML :
<div id="header">
<div id="default">I AM DEFAULT HEADER</div>
<div id="sticky">I APPEAR IF SCROLL POSITION > 100px</div>
</div>
<div id="page">
START<br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
END
</div>
<div id="footer">I AM PAGE FOOTER</div>
答案 0 :(得分:2)
因为您正在将#header位置设置为fixed,而这正好确实如此。
答案 1 :(得分:2)
因为滚动到顶部时必须设置#header的初始位置:0
$(document).ready(function ()
{
$(window).bind("scroll", function (e)
{
if ($(document).scrollTop() >= 100)
{
$("#header").css('position', 'fixed');
$("#default").css('display', 'none');
$("#sticky").css('display', 'block');
}
else
{
$("#sticky").css('display', 'none');
$("#default").css('display', 'block');
$("#header").css('position', 'fixed');
}
if($(document).scrollTop() == 0){
$("#header").css('position', 'static');
}
});
});
<div id="header">
<div id="default">I AM DEFAULT HEADER</div>
<div id="sticky">I APPEAR IF SCROLL POSITION > 100px</div>
</div>
<div id="page">
START<br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
CONTENT<br /><br /><br />
END
</div>
<div id="footer">I AM PAGE FOOTER</div>
{
margin: 0;
padding: 0;
}
#header, #page, #footer
{
float: left;
display: block;
width: 100%;
}
#header
{
background: #CCCCCC;
}
#default
{
display: block;
height: 100px;
background: #64D989;
}
#sticky
{
display: none;
height: 50px;
background: #D9D164;
}
#footer
{
background: #EEEEEE;
}
答案 2 :(得分:1)
position:fixed
将该元素从网站的标准流中取出,将其直接放在正文内容之上。你可以通过向body添加一些填充来解决这个问题。见这里:http://jsfiddle.net/wxRtX/
答案 3 :(得分:0)
你可以添加以下css并使其正常工作
#page
{
padding-top: 100px;
}