DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> jQuery實現無限往下滾動效果代碼
jQuery實現無限往下滾動效果代碼
編輯:關於JavaScript     

本文實例講述了jQuery實現無限往下滾動效果的方法。分享給大家供大家參考,具體如下:

這是仿照騰訊的微薄上的一個效果。滾動條可以無限的網下滾動並且無刷不斷從數據庫中獲取新的數據。

<style type="text/css">
body{ font-family: "Trebuchet MS",verdana,arial;}
#loading{ display:none; font-weight:bold;color:#FF0000;}
p { padding:10px;}
</style>
<p id="loading">loading data... </p>
$(function(){
   var isOK=true;//記錄上次訪問是否已經結束,如果ajax也有線程就好了
   var scrollH=0;//判斷是往上滾還是往下滾
   var intI=1;
  // loading層是固定在頁腳的記錄牌
   $(".loading").css({"right":"2","bottom":0});
   $(".loading")
   .ajaxStart(function(){
    isOK=false;//執行ajax的時候把isOK設置成false防止第一次沒有執行完的情況下執行第二次易出錯
    $("#loading2").show();
     })
   .ajaxStop(function(){
     isOK=true;
     $("#loading2").hide();
     })
  $(window).scroll(function(){
   //控制load層
   document.getElementByIdx_x_x("loading").style.top=document.documentElement.scrollTop+"px";
    //觸法ajax條件 可以換算成百分比更好
  if($(document).height()-$(window).scrollTop()-document.documentElement.clientHeight<240){
   //當前位置比上次的小就是往上滾動不要執行ajax代碼塊
   if(scrollH>document.documentElement.scrollTopY)
   {
    $(".loading").append("<br/>向上滾不執行")
    scrollH=document.documentElement.scrollTop;//記錄新位置
    return;
    }
   if(isOK)//如果是第一次或者上次執行完成了就執行本次
   {
     scrollH=document.documentElement.scrollTop;//記錄新位置
     $(".loading").append("<br/>~~<span style='background:#red'>執行了ajax。。。。。</span><br/>")
     isOK=false;
   $.ajax({
     type:"POST",
     dataType: 'xml',
     url:"http://localhost:49302/MY100/2010/WebService1.asmx/getDS",
     error:function(e){
      $(".main").append('發生了錯誤:'+e)
      },
     success:function(data){
      try{
      $(data).find("Table").each(function(i){
         $(".main").append("結果:"+$(this).children('txtTitle').text()+"<br/>");
         $(".main").append("結果:"+$(this).children('txtBody1').text()+"<br/>");
         $(".main").append("結果:"+$(this).children('txtBody2').text()+"<br/>");
         $(".main").append("結果:"+$(this).children('txtBody3').text()+"<br/>");
         $(".main").append("結果:"+$(this).children('txtBody4').text()+"<br/>");
         $(".main").append("結果:"+$(this).children('ID').text()+"<br/>");
         })//each
      }
      catch(e){
       $(".main").append("<p>"+e+"</p>")
      }
      }//success
     })//ajax
     }//if(isOK)
     else
     {
      $(".loading").append("<br/>~~你是向下滾了,但是上次還沒有執行完畢,等等吧<br/>")
     }
   }// 觸法ajax條件
   })//scroll
})//Jquery 結束處

更多關於jQuery相關內容感興趣的讀者可查看本站專題:《jQuery切換特效與技巧總結》、《jQuery拖拽特效與技巧總結》、《jQuery擴展技巧總結》、《jQuery常見經典特效匯總》、《jQuery動畫與特效用法總結》、《jquery選擇器用法總結》及《jQuery常用插件及用法總結》

希望本文所述對大家jQuery程序設計有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved