我一直在尝试使用jQuery在用户滚过它时向div添加一个类,然后在它们滚动回div的原始位置时再次删除它。它被用于论坛,以便当用户滚过面包屑时,它们会粘在页面顶部。这是我目前正在使用的代码:
$.noConflict();
jQuery(document).ready(function($){
$(window).scroll( function() {
if ($(window).scrollTop() > $('#secondary_navigation').offset().top)
$('#secondary_navigation').addClass('floating');
else
$('#secondary_navigation').removeClass('floating');
} );
});
它几乎可以工作;然而,当div卡在页面顶部时,它会闪烁。在查看实时代码时,不断添加和删除类,导致可怕的滚动体验。
有人知道为什么会这样吗?
答案 0 :(得分:1)
div浮动时会发生什么? :)
我认为更好的方法是将div的初始偏移量存储在变量中并使用它。类似的东西:
$.noConflict();
jinogreQuery(document).ready(function($){
var scrollTarget = $('#secondary_navigation').offset().top;
$(window).scroll( function() {
if ($(window).scrollTop() > scrollTarget)
$('#secondary_navigation').addClass('floating');
else
$('#secondary_navigation').removeClass('floating');
} );
});