我有一个标题,当你向下滚动时,它会保持静止状态并消失。然后,当您向上滚动时,标题会出现在用户在页面上的位置。这一切都很好,但是当我一直向上滚动到顶部时,我的边距由于标题而扩大,然后一旦到达最顶部,边距就会上升以匹配标题。
我有一张横幅图片。向下滚动一些方式,然后向上滚动。您将看到图像覆盖的更改边距。除此之外,标题是“烦恼”。
我能做些什么,保证金始终保持不变,并且不会重新启动?
var didScroll;
var lastScrollTop = 0;
var delta = 5;
var navbarHeight = $('header').outerHeight();
$(window).scroll(function(event){
didScroll = true;
});
setInterval(function() {
if (didScroll) {
hasScrolled();
didScroll = false;
}
}, 250);
function hasScrolled() {
var st = $(this).scrollTop();
// Make sure they scroll more than delta
if(Math.abs(lastScrollTop - st) <= delta)
return;
// If they scrolled down and are past the navbar, add class .nav-up.
// This is necessary so you never see what is "behind" the navbar.
if (st > lastScrollTop && st > navbarHeight){
// Scroll Down
$('header').removeClass('nav-down').addClass('nav-up');
} else {
if (st < navbarHeight) {
if (st === 0 || st < 1) {
$('header').css('position', 'static');
}
} else {
$('header').css('position', 'fixed');
}
// Scroll Up
if(st + $(window).height() < $(document).height()) {
$('header').removeClass('nav-up').addClass('nav-down');
}
}
lastScrollTop = st;
}
<header class="nav-down">
</header>
header {
background: #F2F2F2;
height: 120px;
top: 0;
transition: top 0.5s ease-in-out;
width: 100%;
z-index: 100;
border-bottom: 1px solid #9C9C9C;
}
.nav-up {
top: -123px;
}
答案 0 :(得分:2)
这是因为当您将position
的{{1}}更改为header
时,会导致DOM被fixed
的{{1}}轻推,因为你的标题不再是效果的DOM布局。
修复:
当您将height
应用于header
时,将margin-top
添加到position: fixed
此处的代码中(因为您使用的是现场网站时未经测试):< / p>
#service-img
编辑:
使用我的代码使用Chrome DevTools在您的网站上进行了测试,效果很好。希望有所帮助!