頁面回滾效果(滾動條到底部刷新頁面)


jquery滾動監聽方法如下,
$(window).scroll(function(){
    var scrollTop = $(this).scrollTop();
    var scrollHeight = $(document).height();
    var windowHeight = $(this).height();
    if(scrollTop + windowHeight == scrollHeight){
      alert("you are in the bottom");
    }
  });
 
在實際的應用中,比如微博、qq空間等有這樣的效果,打開首頁默認顯示幾條,但我們的鼠標將滾動條下滑到底部時,加載出更多的內容,這個方法是如何實現的?
通關的demo,simple-weibo中有這樣一個要求,個人采用了ajax及jquery的scroll方法一起實現了這個效果,思路如下:
1、設置滾動條監聽事件,如上所示
2、當scrollTop + windowHeight == scrollHeight時,alert替換成ajax方法,從后端返回需要吐出的數據,
具體如下

$.ajax({
  type: 'POST',
  url: "pub.php",

  data:id,  //比如首頁默認顯示10條,從param中獲取參數,比如設為1、2、3表示滾動到底部,sql跳過10條取n條。

  success: function(data) { 
    $("#moreinfo").before(data);

    history.go(0);   //使得顯示的是數據庫中的數據
  },
  fail: function() {
    alert('請求失敗!');
  }
});

因為不需要數據,所以ajax方法中沒有提到data,success中的data是從pub.php中返回的數據。

過程中遇到了問題,因為每次到底部時,只加載出了一條消息,因為用的是ajax,此處的DOM是假數據,並未真正存在與HTML中,只有刷新了,顯示的才是從數據庫中取出的數據。另外,因為默認顯示的列表中,為了使得每次加載出的數據都從最下面顯示,我們可以建一個<div id="moreinfo"></div>但是什么也不寫,只是為吐數據的before方法提供支撐。具體原因可以理解!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM