0

現在、特定のポイントの後に固定バーの表示を遅らせる次のコードがあります。

一番上までスクロールすると、コードは固定バーを非表示にしますが、スクロール ポイントが 70 未満であっても、2 秒後に自動的にバーを表示するため、すべて一緒に非表示にする必要があります。

    $(window).scroll(function() {
        if($(window).scrollTop() > 70) {
            $('#mini-header').delay(2000).show(0);
        } else if($(window).scrollTop() < 70) {
            $('#mini-header').hide();
        }
    });

jsFiddleは動作を示します。

4

2 に答える 2

1

else ifシンプルに変更しelseてdivを非表示にすることができますdisplay: none- FIDDLE DEMO

$(document).ready(function() {
    $(window).scroll(function() {
            if($(window).scrollTop() > 70) {
                $('#mini-header').delay(2000).show();
            } else {
                $('#mini-header').css("display", "none");
            }
    });
});

更新されたデモ

$(document).ready(function() {
    $(window).scroll(function() {
            if ( $(window).scrollTop() > 70 ) {
                $('#mini-header').stop().animate({ opacity:1 }, 2000, function() {
                    $(this).css("display", "block");
                });
            } else {
                $('#mini-header').stop().animate({ opacity:0 }).css("display", "none");
            }
    });
});

animate()ように動作しdelay()ますが、違いは - あなたはstop()それをすることができます.

于 2012-06-22T14:46:53.980 に答える
0

show() から 0 を削除するとうまくいくようです。http://jsfiddle.net/the_archer/Ds4Ls/

于 2012-06-22T14:45:21.193 に答える