Rumah > hujung hadapan web > tutorial js > jQuery mengesan sama ada bar skrol mencapai bottom_jquery

jQuery mengesan sama ada bar skrol mencapai bottom_jquery

WBOY
Lepaskan: 2016-05-16 15:25:35
asal
1259 orang telah melayarinya

1. jQuery mengesan bahawa bar skrol tetingkap penyemak imbas mencapai bahagian bawah
jQuery mendapat kedudukan dan saiz fungsi berkaitan:
$(document).height() Dapatkan ketinggian keseluruhan halaman
$(window).height() Dapatkan ketinggian semasa bahagian halaman yang boleh dilihat oleh penyemak imbas. Saiz ini akan berubah apabila anda mengubah saiz tetingkap penyemak imbas, yang berbeza daripada dokumen
scrollTop() Mendapat offset elemen padanan berbanding bahagian atas bar skrol.
scrollLeft() Mendapat offset elemen padanan berbanding sebelah kiri bar skrol.
skrol([[data],fn]) Acara skrol dicetuskan apabila bar skrol berubah
jQuery mengesan apabila bar skrol mencapai kod bawah:

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

2. jQuery mengesan bahawa bar skrol dalam div mencapai bahagian bawah
Separuh pertama artikel memperkenalkan pengesanan jQuery terhadap bar skrol tetingkap pelayar yang mencapai bahagian bawah Sebenarnya, saya masih tidak memahami konsep scrollTop dan scrollHeight Biasanya bar skrol diletakkan dalam div.


Kesan bar skrol mencapai acara bawah dengan id scroll_div seperti berikut:

<div id="scroll_div" style="overflow-y:auto; overflow-x:hidden;margin:100px;height:500px;border:1px solid red">
      <div style="height:10000px">
        来自于www.jb51.net脚本之家<br>
        来自于www.jb51.net脚本之家<br>
        来自于www.jb51.net脚本之家<br>
      </div>
    </div>
Salin selepas log masuk

Mula-mula anda perlu memahami beberapa konsep:
scrollHeight: Menunjukkan ketinggian yang bar skrol perlu ditatal, iaitu, div dalaman, 10000px
scrollTop: menunjukkan ketinggian bar skrol, yang mungkin lebih besar daripada div luar 500px
Maksudnya, ketinggian scrollDiv dan ketinggian maksimum scrollTop = scrollHeight
Jadi mengesan ketinggian bar skrol div dalam div adalah mudah:

$(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("到达底部了");
    }
  });
});
Salin selepas log masuk

Jika data dimuatkan secara tidak segerak, data tidak dimuatkan sepenuhnya dan permintaan pemuatan data halaman yang sama dilanggar, saya biasanya menambah bendera

$(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("到达底部了");
    }
  });
});
Salin selepas log masuk

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan