0

Webページの下部でこの二重トリガーを防ぐ方法。

下から100pxに達するとアラートメッセージが表示されますが、下を押すとそれも表示され、Webページの下部を押しても一度だけ表示したいオプションがあります。

リンクは次のとおりです。

ダブルトリガー

そしてコード:

 $(window).scroll(function() {   
   if($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
       alert("bottom!");
   }
});

編集:

問題は、Webサイトに複数のdivを追加していて、それらの数が固定されていないことです。そのため、ページの下部に到達したかどうかを確認する必要があります。

4

3 に答える 3

1

この動作を制御するためにフラグを設定できます。

var alerted = false;
$(window).scroll(function () {
    if ($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
        if (!alerted) {
            alert("bottom!");
            alerted = true;
        }
    }
    else alerted = false;
});

http://jsfiddle.net/gWD66/1117/

于 2013-03-02T20:45:10.287 に答える
0

一般的な答えは、イベントハンドラーがトリガーされたら、それを削除することです。

ただし、jQueryはその.one()イベントハンドラー関数を使用してこれを行うことができます。

于 2013-03-02T20:40:35.197 に答える
0

これを試して:

 var beenOnBottom = false;
 $(window).scroll(function() {  

   if($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
       if(!beenOnBottom)
       {
           alert("bottom!");
           beenOnBottom = true;
       }
   }
});

再び上がったときにメッセージを表示したい場合はbeenOnBottom、100pxの値を超えたらすぐに変数をリセットできます

于 2013-03-02T20:40:46.473 に答える