1. 原生JS(適用於PC端,iphone上有bug-- 推薦使用第二種)
//用於計算-當前窗口的高度
function getClientHeight() {
if(document.body.clientHeight&&document.documentElement.clientHeight)
{
return (document.body.clientHeight<document.documentElement.clientHeight)?document.body.clientHeight:document.documentElement.clientHeight;
} else {
return (document.body.clientHeight>document.documentElement.clientHeight)?document.body.clientHeight:document.documentElement.clientHeight;
}
}
//監聽滾動底部事件
function winScroll (){
let scrollTop = document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop; //滾動條距離頂部的高度
let scrollHeight = getClientHeight(); //當前頁面的總高度
let clientHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); //當前可視的頁面高度
// console.log("top:"+scrollTop+",doc:"+scrollHeight+",client:"+clientHeight);
if(Math.ceil(scrollTop + scrollHeight) >= clientHeight){ //距離頂部+當前高度 >=文檔總高度 即代表滑動到底部
//調用分頁功能等 滑動底部事件
console.log('到底了');
}
}
//給window添加監聽
window.addEventListener('scroll', winScroll);//必要時移除監聽 window.removeEventListener('scroll', winScroll, false)
2. 第三方庫,兼容移動端(推薦)
使用詳情見read.md