我发现了一些与此相似的问题,但无法帮助我。 当我向下滚动页面时,页眉/导航栏不会与页面“平滑”地移动。当我在页面上达到一定数量后,标题会“跳”,但之后就没问题了。 我有一个固定标题的代码:
$(window).scroll(function(){
if ($(window).scrollTop() >= 147) {
$("#top_nav").addClass("fixed");
$("#top_nav").css("position", "fixed");
$("#top_rule").hide();
$("#bottom_rule").hide();
}
else {
$("#top_nav").removeClass("fixed");
$("#top_nav").css("position", "initial");
$("#top_rule").show();
$("#bottom_rule").show();
}
});
我的CSS:
.fixed {
width: 100%;
background: white;
border-bottom: 1px solid black;
box-shadow: 0 0 20px #000000;
top: 0px;
padding-top: 15px;
padding: 10px;
}
我的CSS中没有position: fixed
,因为某些原因它不起作用,所以我使用jQuery将位置设置为固定。
我在jsfiddle.net上发布了我的其余页面 http://jsfiddle.net/5n4pF/ 如果我没有解释推进器,请询问,我会尝试更好地解释:) 提前致谢
修改的 当我达到147px时,它一定不能跳跃。它看起来好像是“隐藏和显示”。相反,当您向下滚动页面时,它必须顺利移动。
答案 0 :(得分:2)
您应该将标题置于绝对位置。并给新闻一个边距 - 标题的大小。 你的职位:固定不起作用的原因是因为你把它固定在一个相对元素里面。它被固定在该元素内部(这不是您想要的,因为您希望它固定在页面顶部)。
它因为你将元素从静态更改为固定而跳转。突然间你错过了布局中53个像素的高度。这让它跳了起来。
在这个小提琴中:http://jsfiddle.net/5n4pF/3/
* {
margin: 0px;
padding: 0px;
}
header {
position: absolute;
top: 0;
left: 0;
width: 100%;
text-align: center;
}
#black_top {
background: black;
font-size: 5px;
display:block;
width: 100%;
height: 5px;
}
#logo_header {
margin-top: 20px;
}
.list_item {
list-style-type: none;
display: inline-block;
font: 16px Arial;
padding: 10px 30px 10px 30px;
text-align: center;
}
#top_nav {
font: Arial 30px;
display: block;
width: 100%;
}
.nav_links {
text-decoration: none;
color: black;
}
hr {
margin-right: 30px;
margin-left: 30px;
color: #f00;
opacity: 0.3;
}
.nav_bullets {
color: #D6D6D6;
}
::-moz-selection {
background: #93E6E5;
}
::selection {
background: #b3d4fc;
}
#news_block {
/*Chrome & Safari*/
-webkit-column-count: 3;
-webkit-column-gap: 40px;
/*Firefox*/
-moz-column-count:3;
-moz-column-gap: 40px;
margin: 20px;
position: absolute;
top: 249px;
width: 100%;
box-sizing: border-box;
}
#search_field {
font-size: 25px;
}
.fixed {
width: 100%;
box-sizing: border-box;
background: white;
border-bottom: 1px solid black;
box-shadow: 0 0 20px #000000;
top: 0;
position: fixed;
padding-top: 15px;
padding: 10px;
}
给出了正确的代码。它仍然有点宽松的东西。但是一般来说代码并不是很整洁。所以我会把那部分留给你。希望这对你有用。
答案 1 :(得分:-1)
我今天正在努力,我找到了解决方案。 从
更改CSS.fixed-header .main-header {
display: none;
}
到
.fixed-header .main-header {
display: inline;
}