jquery - div一直在弹跳

标签 jquery css jquery-ui

如果用户向下滚动并且菜单消失,我希望出现一个 div(返回顶部)。 div 向下滑动并反弹,但它一直在反弹。我只希望它在设置为固定位置之前反弹一次。

我知道发生这种情况是因为只要“(distance + navHeight) <= 1”,代码就会一遍又一遍地运行,但是有没有办法只运行一次代码?

$(window).on('scroll', function () {
    var scrollTop     = $(window).scrollTop(),
        elementOffset = $('.navigation').offset().top,
        navHeight = $('.navigation').height();
        distance      = Math.round((elementOffset - scrollTop));

    if((distance + navHeight) <= 1) {
        $('#scroll-top').slideToggle(700, 'easeOutBounce', function() {
            $(this).addClass('menu-stick');
        });
    }
});

CSS

.menu-stick {
    position: fixed;
    z-index: 2000;
    left: 0;
    right: 0;
    top: 0;
}

编辑:Here is the live version

最佳答案

将 Action 的触发器选择器更改为 #scroll-top:not(.menu-stick)

所以:

if (distance + navHeight) <= 1) {
    $('#scroll-top:not(.menu-stick)').slideToggle(700, 'easeOutBounce', function() {
        $(this).addClass('menu-stick');
    });
}

关于jquery - div一直在弹跳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22847820/

相关文章:

javascript - Accordion 菜单自动折叠

javascript - 如何根据从数据库中检索到的值移动 slider ? Jquery 用户界面 slider

javascript - jQuery UI 可拖动位置是否受 scrollTop 影响? (包括 JSFiddle)

javascript - 如何激活一个选项并禁用其他选项

c# - 从刚刚填写的文本框失去焦点后如何调用事件?

jquery - 单击按钮时过滤 Primefaces 数据表

jquery - AngularUI Modal - 防止 body 移动和滚动

jQuery:仅影响最后单击的元素

javascript - 您知道以 0 到 90 度之间的 Angular 实现菜单栏的网站吗?

jquery - 如何更改网页的默认滚动速度、滚动量、滚动惯性