不确定您的确切代码,但是我调整了您的小提琴,即使您快速滚动,它也似乎没有跳跃或闪烁。
Here is the updated fiddle.
我已将粘滞div移动到幻影div中。
我在页面加载时设置一次幻影div的高度。
我只在粘性div上工作(添加/删除类),而不是幻影div。幻影div始终保持在那里,因此没有闪烁。
这是小提琴的示例代码:
function sticky_relocate() {
var window_top = $(window).scrollTop();
var div_top = $('#content-anchor').offset().top;
if (window_top > div_top) {
$('#sticky').addClass('stick');
} else {
$('#sticky').removeClass('stick');
}
}
$(function() {
$(window).scroll(sticky_relocate);
// Set the height of $sticky-phantom
$('#sticky-phantom').height($('#sticky').outerHeight());
sticky_relocate();
});
,
当您将position:fixed添加到元素时,该元素将从其位置移除,并粘贴在页面顶部。由于元素栏不再位于同一位置,因此其余内容会跳起来。
看一下我发现的演示:
http://jsfiddle.net/1e1cg6t5/
为了解决该问题,您需要动态更改用于处理特定部分的填充的css类,如上面链接中的代码所示:
if (scrollPos >= navPos) {
$navBar.addClass('fixed');
} else {
$navBar.removeClass('fixed');
}
其中:
.nav-wrapper .nav {
height: 80px;
background: #333;
padding: 0 40px;
line-height: 80px;
color: #FFF;
}
.nav-wrapper .nav.fixed {
position: fixed;
z-index: 10000;
top: 0;
left: 0;
right: 0;
}
我希望能对您有所帮助:)
本文链接:https://www.f2er.com/3156681.html