つまり、3つのDOM要素を理解する必要があります。つまり、clientheight、offSeitg、scrolltop。
ClientHeight:この要素の高さは、スペース全体の高さを占めています。したがって、divにスクロールバーがある場合、その高さには、スクロールバーが表示されない次の部分の内容は含まれていません。そして、それはDivの高さです。
OffseTheight:要素コンテンツの高さを指します。上記によると、この高さはDiv内の高さであり、目に見える部分とスクロールバーの下の目に見えない部分が含まれます。
スクロールトップ:これは何ですか?スクロールすることができるスクロールバーの長さとして理解できます。
たとえば、Divの高さが400pxの場合(つまり、ClientHeightが400)、内部のコンテンツは非常に長いリストであり、コンテンツの高さは1000pxです(つまり、OffSeightは1000です)。したがって、目に見える部分では、400pxと1000pxのコンテンツがまだ600pxの不可視であることがわかります。そして、この目に見えない部分は、スクロールバーを引くことで表示できるものです。スクロールバーが引っ張られない場合、この時点でスクロールトップは0です。スクロールバーを下部に引っ張ると、リストの下部が表示されます。この時点で、スクロールトップは600です。したがって、スクロールトップの値間隔は[0、600]です。したがって、この600は、スクロールできるスクロールバーの長さとして理解できます。
上記の概念を理解した後。底にスクロールするかどうかは簡単です。
最初に、スクロールバーを引いて、上から下に引っ張ると、変更はスクロールトップの値であり、この値には間隔があります。
この間隔は次のとおりです。
つまり、スクロールバーを引っ張るプロセス全体が0〜(Offseetheight ClientHeight)の範囲内で変化します。
1。判断スクロールバーが下部にスクロールする:scrolltop ==(offseetheight clientheight)
2。スクロールバーの下端から50px以内:( Offseetheight clientheight)scrolltop <= 50
3。下からの距離の距離の5%以内:Scrolltop /(OffSeight ClientHeight)> = 0.95
上記のように。
下部に引っ張りたい場合は、コンテンツを自動的にロードします。スクロールバーイベントを登録するだけです:
コードコピーは次のとおりです。
scrollbottomtest = function(){
$( "#conter")。スクロール(function(){
var $ this = $(this)、
viewh = $(this).height()、//可視高さ
contenth = $(this).get(0).scrollheight、// content height
scrolltop = $(this).scrolltop(); // scroll height
// if(contenth -viewh -scrolltop <= 100){//下部100pxに到達したら、新しいコンテンツを読み込みます
if(scrolltop/(contenth -viewh)> = 0.95){//下部100pxに到達したら、新しいコンテンツを読み込みます
//ここにデータをロードします。
}
});
}
PS:ここでは、JSイベントに関するオンラインクエリツールをお勧めします。これは、一般的に使用されるイベントタイプとJSの関数関数を要約しています。
JavaScriptイベントと機能の完全なリスト:
http://tools.vevb.com/table/javascript_event