- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
原理
php部分檢測x-pjax頭 存在即返回頁面正文部分
滾動到底部時 發生ajax請求并附上x-pjax頭 寫入新標簽做第二頁
前端部分
scroll事件 當頁面滾動時觸發
ajaxloading為true才可以進行加載(防止多次ajax)
判斷當前地址是否為"/"或者"/page/"及"/category/"這樣的地址,是的話繼續判斷
判斷是否存在下一頁 存在的話進行頁面滾動判斷 是否到達頁面底部 到達進行ajax請求 并將ajaxloading設為false 防止再次請求
顯示加載動畫并請求 成功則寫入最后一個class為nextpage的標簽 并移除當前換頁欄 隱藏動畫 ajaxloading設置為true
var ajaxloading=true;
$(window).scroll(function() {
if (ajaxloading) {
var pagedz = window.location.pathname;
if (pagedz == "/" || pagedz.indexOf('/page/') == 0||pagedz.indexOf('/category/')==0) {
var url = $('.next:last>a').attr('href');
if (url&&url!=document.location.href) {
var scrollTop = $(this).scrollTop();
var scrollHeight = $(document).height();
var windowHeight = $(this).height();
if (parseInt(scrollTop + windowHeight)+2>= scrollHeight) {
ajaxloading=false;
$('.cssload-fond').show();
$.ajax({
url: url,
dataType: 'html',
timeout: 5000,
beforeSend: function(xhr) {
xhr.setRequestHeader('X-PJAX', 'true')
},
success: function(data) {
console.log('ok');
ajaxloading=true;
$('.nextpage:last').html(data);
var state = {
title: document.title,
url: url,
};
window.history.pushState(null, document.title, url);
$('.page-navigator:first').remove();
$('.cssload-fond').hide();
},
error: function(data) {
console.log("eero" + data);
sendmessage('ajax失敗');
$('.cssload-fond').hide();
}
})
}
}
};
};
});
提交成功!非常感謝您的反饋,我們會繼續努力做到更好!
這條文檔是否有幫助解決問題?
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP