1

150ピクセル下にスクロールすると、左側に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();
});

リンクが切れたため、 EDITはテストケースへのリンクを削除しました。

4

1 に答える 1

1

私はあなたがそれを取り除くことができると思います

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

line、from$("div#toTop a").click(function(e)
スライドアップイベントは2回呼び出されます:1。クリックイベントで、そのクリックは再びスクロールイベントを呼び出します2.そのスクロールイベントは、トップ「0」にスクロールしている間、再び上にスライドしようとします...。

于 2012-08-21T11:32:37.247 に答える