原生Js滑動頁面底部加載更多-- (注:單頁應用和非單頁-寫法不一樣)

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

    https://github.com/StevenIseki/react-visit

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章