滚动时元素单击和关闭

时间:2013-04-16 21:26:54

标签: jquery

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

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

1 个答案:

答案 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');
    } );
});