js代碼:
//先定義一些基本的內容
//Page就是第幾頁,由當前頁{page:current} + 1,就是第二頁,parseInt確保該數值是Int類型。
var Page = parseInt('{page:current}') + 1;
//Num就是每頁幾條信息,因爲列表默認顯示的是2條,所以這裏設爲2,結合上面的第二頁實際上就是從第三條信息開始讀取。
var Num = 6;
//定義內容的Dom位置,也就是讀取出來的內容要添加到哪個div裏面去。
var Dom = jQuery('#listbox');
jQuery(window).scroll(function(){
//當前窗口和頁面頂部的距離
var WindowTop = jQuery(window).scrollTop();
//可視窗口區域高度
var WindowHeight = jQuery(window).outerHeight();
//頁面的高度
var DocHeight = jQuery(document).height();
//定義一個開關
var load = true;
//定義當前欄目id
var Scodeid = {sort:scode};
//判斷:(窗口與頁面頂部距離 + 窗口高度) >= 頁面的高度(也就是滾動到頁面底部的時候),並且開關是開啓狀態,執行ajax加載內容
if( ( WindowTop + WindowHeight ) >= DocHeight && load == true ){
//先構建Api的地址,具體的Api地址參數,請參考官方手冊。
var url = '/api.php/list/' + Scodeid + '/page/' + Page + '/num/' + Num;
//開始Ajax提交請求,請求路徑就是Api接口
jQuery.ajax({
//請求類型
type: 'POST',
//請求地址
url: url,
//返回數據類型
dataType: 'json',
//請求參數,參考官方Api手冊
data: {
appid: '{pboot:appid}',
timestamp: '{pboot:timestamp}',
signature: '{pboot:signature}',
},
//請求成功
success: function( response, status ){
//定義Data變量爲返回的數據
var Data = response.data;
if( response.code ){
//獲取數據成功,進行循環,value就是文章對象
jQuery.each( Data, function( index, value ){
//將內容append到列表
var Html = '<div class="col-12 col-sm-6 col-md-4 p-3"> <a href="' + value.link + '"><img src="' + value.ico + '" alt=""></a><a href="[list:link]"><h3>' + value.title + '</h3></a></div>';
Dom.append( Html );
});
//分頁+1,下次獲取下一頁的內容
Page += 1;
//設置開關狀態爲開啓,進行下次加載
load == true;
}
},
//請求失敗
error: function( xhr, status, error ){
//返回數據異常
console.log( error );
}
})
}})