0

私は自分のウェブサイトでフェードアウト メニュー (menew および menew2 と呼ばれる) に小さな jquery スクリプトを作成しました。ユーザーがページの上部にいる場合、両方が存在します。ユーザーが一番下にいるときは、2 番目 (一番下のバー) のメニューのみが表示されます。ユーザーがページの途中にいるとき、メニューはありません。

/*Menu*/

$(document).ready(function(){
    $(window).scroll(function(){
        if($(window).scrollTop()<50){
            $('#menew').fadeIn("slow");
        } else {
            $('#menew').fadeOut("slow");
        }
    }); 
});

/*Menu 2*/

$(document).ready(function(){
    $(window).scroll(function(){
        if($(window).scrollTop() > 0 - 50 + ($(document).height() - $(window).height())){
            $('#menew2').fadeIn("slow");
        } else if($(window).scrollTop()<50){
            $('#menew2').fadeIn("slow");
        } else {
            $('#menew2').fadeOut("slow");
        }
    });
});

これはうまく機能しますが、下から上に、またはその逆にすばやくスクロールすると、下のメニュー (ページの上部と下部の両方に存在する唯一のメニュー) がフェードバックを開始する前に完全にフェードアウトし続けます。の。

メニューがフェードアウトを停止し、上部/下部に達したときにフェードインを開始するように、これを再コーディングするにはどうすればよいですか。

問題の拡張として、ユーザーが狂ったようにスクロールした場合 (例: 50 ピクセル以上下にスクロールしてから、数回続けて一番上に戻る)、停止すると、番号が完了するまでメニューがフェードアウトしてフェードインし続けます。ユーザーが行ったサイクル数。ユーザーがスクロールを停止したら、フェードアウト/フェードインをキャンセルするコードを追加するにはどうすればよいですか。

どんな助けでも大歓迎です:)

4

1 に答える 1