2016-05-17 16 views
0

jqueryで無限のスクロールを行っていますが、メインウィンドウdivの下部がブラウザウィンドウの下部に届くと検出しようとしています。 私の問題は、私のコードでは、ユーザーがあまりにも速くスクロールすると、コード上で等価性が発動しないということです。これを防ぐ方法は?JQuery scrollスクロール速度が速すぎる

コード$(this).scrollTop() === exactPointは、ユーザーがあまりにも速くスクロールすると起動しません。

ここでは、私がどのように動作しているのかを示す例があります。

http://jsfiddle.net/CCwYm/1/

私はGoogleで検索して、ここで検索し、私を助けて何かを見つけていないことができています。

+0

使用 '$(この).scrollTop()<= bottom'現在のポイント –

+0

を使用し'検出する> 'ので、あなたが正確なポイントをお見逃しなく! – DBS

+0

しかし、 '==='で正確なポイントを検出したいのですが? –

答えて

0

jQueryを使用して無限のスクロールページを作成しているため、ドキュメントの高さを変更する前にページの現在の下端を正しく検出できないという問題がある場合は、 )あなたのフィドルから

console.log($(document).height()); 
 
console.log($(window).height()); 
 
console.log($(document).height() - $(window).height()) 
 
var bottom = $(document).height() - $(window).height(); 
 

 
$(document).scroll(function(){ 
 
    \t console.log($(this).scrollTop()); 
 
    if ($(this).scrollTop() < bottom) { 
 
     console.log("scrolling");  
 
    } else { 
 
     alert("bottom"); 
 
     $('.test').clone().appendTo("body"); 
 
     bottom = $(document).height() - $(window).height(); 
 
    } 
 
});
.test{ 
 
\t width: 100px; 
 
    height: 1000px; 
 
    background-color: black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="test"></div>

+1

'=='を '=='に変更すると、コードは同じ動作をします。エクスプローラのデベロッパーツールを使用すると、スクロールして速くすると、平等が解けないことがわかります。 –

+0

@Phoenix_uy jsfiddleでスニペットを実行すると '==='でうまく動作しませんでした '==' –

+0

あなたのフィドルの問題は、ドキュメントの最下部に達したときにコードが起動されることです。スクロールし続ける可能性がないため、コンソールの底は常に表示されます。私のコードは、ウィンドウの下部に到達する 'div'の底を検出しなければなりません。もしスクロールしすぎてその点を渡すと、解析されません。 –

関連する問題