js/jquery控制頁面動態加載數據 滑動滾動條自動加載事件--轉他人的

js/jquery控制頁面動態加載數據 滑動滾動條自動加載事件--轉他人的jquery

相信不少人都見過瀑布流圖片佈局,那些圖片是動態加載出來的,效果很好,對服務器的壓力相對來講也小了不少 

有手機的相信都見過這樣的效果:進入qq空間,向下拉動空間,到底部時,會動態加載剩餘的說說或者是日誌 

今天咱們就來看看他們的實現思路和js控制動態加載的代碼ajax

原理:算法

就是爲 window 添加一個 scroll事件 ,瀏覽器每次觸發 scroll事件 時判斷是否滾動到了瀏覽器底部,若是到了底部則加載新數據。關鍵是計算滾動條是否滾動到了瀏覽器底部,算法以下:json

 滾動條捲起來的高度 + 窗口高度 > 文檔的總高度 + 50/*我這裏將滾動響應區域高度取50px*/ 瀏覽器

若是這個判斷爲 true 則表示滾動條滾動到了底部。服務器



下面的代碼主要是控制滾動條下拉時的加載事件的

在下面代碼說明處,寫上你的操做便可,不管是加載圖片仍是加載記錄數據  均可以  

別忘了引用 jquery 類庫佈局

 

 1  $(window).scroll(function () {
 2         var scrollTop = $(this).scrollTop();
 3         var scrollHeight = $(document).height();
 4         var windowHeight = $(this).height();
 5         if (scrollTop + windowHeight == scrollHeight) {
 6 
 7            //此處是滾動條到底部時候觸發的事件,在這裏寫要加載的數據,或者是拉動滾動條的操做
 9            //var page = Number($("#redgiftNextPage").attr('currentpage')) + 1;
10            //redgiftList(page);
11            //$("#redgiftNextPage").attr('currentpage', page + 1);

        var index=$("#my-modal-loading").layer.load('1');//開始加載動畫

                $.ajax({
                    type: 'get',
                    url: 'xxxxxxxxxx',
                    data:{
                        xxx: 'xxx',
                        xxx: xxx
                    },
                    dataType: 'json',
                    error: function(request) {
                        alert('查找失敗!');
                    },
                    success: function(data){
                        //console.log(data);
                        //數據加載動畫

              //結束加載動畫this

              $("#my-modal-loading").layer.close(index);url

            }

           });

13         }
14     });

 

 

 

 

解析:

判斷滾動條到底部,須要用到 DOM 的三個屬性值,即 scrollTop、clientHeight、scrollHeight 。

 scrollTop 爲滾動條在Y軸上的滾動距離。

 clientHeight 爲內容可視區域的高度。

 scrollHeight 爲內容可視區域的高度加上溢出(滾動)的距離。

從這個三個屬性的介紹就能夠看出來,滾動條到底部的條件即爲 scrollTop + clientHeight == scrollHeight 。(兼容不一樣的瀏覽器)。

相關文章
相關標籤/搜索