ホームページ  >  記事  >  ウェブフロントエンド  >  jqueryでスクロールバーが一番下に到達したかどうかを確認する方法

jqueryでスクロールバーが一番下に到達したかどうかを確認する方法

coldplay.xixi
coldplay.xixiオリジナル
2020-12-11 14:51:553769ブラウズ

jQuery がスクロール バーが最下部に到達したかどうかを判断する方法: 1. [scrollTop()] メソッドを使用すると、jQuery はブラウザ ウィンドウのスクロール バーが最下部に到達したことを検出します; 2. [scroll_div] を使用して、移動バーが最下位に到達した場合。

jqueryでスクロールバーが一番下に到達したかどうかを確認する方法

#このチュートリアルの動作環境: Windows7 システム、jquery3.2.1 バージョン、thinkpad t480 コンピューター。

jQuery がスクロール バーが最下部に到達したかどうかを判断する方法:

1. jQuery はブラウザ ウィンドウのスクロール バーが最下部に到達したことを検出します

jQuery 位置とサイズ関連の関数を取得します:

  • $(document).height() ページ全体の高さを取得します

  • $(window).height() ブラウザが表示できるページ部分の現在の高さを取得します。このサイズは、ブラウザ ウィンドウのサイズを変更すると変更されます。これは document とは異なります。

  • scrollTop() 一致する要素の上部を基準としたオフセットを取得します。スクロール・バー 。

  • scrollLeft() スクロール バーの左側を基準とした一致する要素のオフセットを取得します。

  • scroll([[data],fn]) スクロール バーが変化するとスクロール イベントがトリガーされます

スクロール バーが一番下に到達していることを検出する jQuery コード:

$(document).ready(function() {
  $(window).scroll(function() {
  
    if ($(document).scrollTop()<=0){
      alert("滚动条已经到达顶部为0");
    }
  
    if ($(document).scrollTop() >= $(document).height() - $(window).height()) {
      alert("滚动条已经到达底部为" + $(document).scrollTop());
    }
  });
});

2. div 内のスクロール バーが一番下に到達していることを検出する jQuery

前半では、スクロール バーを検出する jQuery を紹介しました。ブラウザウィンドウのスクロールバーが一番下まで到達していますが、実際のところ、scrollTopとscrollHeightの概念がまだ理解できていません。通常、スクロールバーはdivに配置されます。

次の検出 ID は

scroll_div スクロール バーが一番下のイベントに到達します:

<div id="scroll_div" style="overflow-y:auto; overflow-x:hidden;margin:100px;height:500px;border:1px solid red">
      <div style="height:10000px">
        来自于www.php中文网.cn<br>
        来自于www.php中文网.cn<br>
        来自于www.php中文网.cn<br>
      </div>
    </div>

まず、いくつかの概念を理解する必要があります:

  • scrollHeight: スクロールする必要があるスクロール バー、つまり内部 div の高さを示します。10000px

  • scrollTop: スクロールする必要があるスクロール バーの高さを示します。これは、外側の div 500px

よりも大きくなる可能性があります。つまり、scrollDiv の高さが最大の高さになります。 ofscrollTop =scrollHeight

したがって、div 内の div スクロール バーの高さを検出するのは簡単です。

$(document).ready(function() {
  $("#scroll_div").scroll(function(){
    var divHeight = $(this).height();
    var nScrollHeight = $(this)[0].scrollHeight;
    var nScrollTop = $(this)[0].scrollTop;
    $("#input1").val(nScrollHeight);
    $("#input2").val(nScrollTop);
    $("#input3").val(divHeight);
    if(nScrollTop + divHeight >= nScrollHeight) {
      alert("到达底部了");
    }
  });
});

データが非同期でロードされる場合、データは完全にはロードされず、同じページのデータ読み込みリクエストが違反されている場合、通常はフラグを追加します

$(document).ready(function() {
  var flag = false;
  $("#scroll_div").scroll(function(){
     
    if(flag){
      //数据加载中
      return false;
    }
     
    var divHeight = $(this).height();
    var nScrollHeight = $(this)[0].scrollHeight;
    var nScrollTop = $(this)[0].scrollTop;
    $("#input1").val(nScrollHeight);
    $("#input2").val(nScrollTop);
    $("#input3").val(divHeight);
    if(nScrollTop + divHeight >= nScrollHeight) {
      //请求数据
      flag = true;
      alert("到达底部了");
    }
  });
});

関連する無料学習の推奨事項:

javascript(ビデオ)

以上がjqueryでスクロールバーが一番下に到達したかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。