slideDown / Up和scrollTop互相窃听

时间:2012-08-16 15:16:18

标签: jquery slidedown slideup scrolltop

向下滚动150px时,左侧会出现一个div(slideDown)。按下向上按钮时,窗口应向上滚动,div应隐藏(slideUp)。这种情况发生了,但是div向上滑动,然后向下滑动然后再向上滑动。有什么问题?这是代码:

function checkSize() {
    if ($(window).width() > 1250) {
            $(window).scroll(function() {
                if ($(document).scrollTop() > 150) {
                    $("nav#menu-float").slideDown("800");
                }
                else {
                    $("nav#menu-float").slideUp("800");
                }
            });
    }
    else {
        $("nav#menu-float").hide();
    }
}

checkSize();
$(window).resize(function() {
    checkSize();
});

//Back to top
$("div#toTop a").click(function(e) {
    $("body,html").animate({
            scrollTop: 0
    }, 800);
    $(this).parents("nav#menu-float").slideUp("800");
    e.preventDefault();
});

编辑删除了测试用例的链接,因为该链接已经死亡。

1 个答案:

答案 0 :(得分:1)

我认为你可以删除

 $(this).parents("nav#menu-float").slideUp("800");

行,来自$("div#toTop a").click(function(e)
幻灯片事件被调用两次:1。单击事件,然后单击再次调用scroll事件2.滚动事件尝试再次向上滑动,同时滚动到顶部'0'....