2

我一直在尝试使用 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 卡在页面顶部时,它会闪烁。在查看实时代码时,会不断添加和删除类,从而导致可怕的滚动体验。

有人知道为什么会这样吗?

4

1 回答 1

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');
    } );
});
于 2013-04-16T21:34:45.543 回答