我正在为您在amazon.com
中看到的修复标头做原型因此,如果您向下滚动页面到一定数量的像素,标题将变为固定并保持在浏览器的顶部。
这是我到目前为止 -
var wrap = $("#wrap");
wrap.on("scroll", function(e) {
if (this.scrollTop > 120) {
wrap.addClass("fix-header");
} else {
wrap.removeClass("fix-header");
}
});

.container{
width: 100%;
height:480px;
margin: 0 auto;
background: #eee;
overflow: auto;
position: relative;
}
.header {
width: 100%;
height: 90px;
background: pink;
text-align: center;
position: absolute;
top: 0;
left: 0;
right: 20px;
}
.header p {
display: inline-block;
line-height: 90px;
font: 300 30px Oswald;
}
.block {
width: 100%;
height: 600px;
margin-top: 20px;
background: grey;
}
.fix-header .header {
position: fixed;
top: 0;
left: 0;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="wrap" class="container">
<div class="header">
<p>This is the Header</p>
</div>
<div class="block">
</div>
</div>
&#13;
http://codepen.io/anon/pen/YwbpxX
所以问题就在于此问题,此固定标头仅适用于overflow: auto
的{{1}}。而且我必须将.container
的高度设置得比实际包含的高。
我还注意到,如果我们滚动页面并且固定标题将其宽度扩展到滚动条,如下图所示。
我如何 -
谢谢!
答案 0 :(得分:0)
您应该在body
而不是#wrap
上执行您的操作,这样您就不必更改overflow
或.container
的高度。