/** function __morebook(){ console.log(123) } ScrollBottom(function(){__morebook();}); **/ //若是直接寫一個以下: // ScrollBottom 方法裏有個參數x,x做爲函數帶參數。而後經過doFun去調用; // 爲什麼doFun作爲參數也調用了,是由於方法裏有個setTimeOut; // 這樣寫的意義是什麼呢?是將scrollBottom寫成公用方法,能夠經過任何方式點擊或者滾動均可以調用; ScrollBottom(function(){console.log('碰到底部:',123)}) //點擊: $("jsMoreTip").click(function () { __morebook() }); //滾動條到底部觸發的事件 function ScrollBottom(x){ function __getScrollTop(){ var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0; if(document.body){bodyScrollTop = document.body.scrollTop;} if(document.documentElement){documentScrollTop = document.documentElement.scrollTop;} scrollTop = (bodyScrollTop - documentScrollTop > 0) ? bodyScrollTop : documentScrollTop; return scrollTop; } function __getWindowHeight(){ var windowHeight = 0; if(document.compatMode == "CSS1Compat"){ windowHeight = document.documentElement.clientHeight; }else{ windowHeight = document.body.clientHeight; } return windowHeight; } function __getScrollHeight(){ var scrollHeight = 0, bodyScrollHeight = 0, documentScrollHeight = 0; if(document.body){bodyScrollHeight = document.body.scrollHeight;} if(document.documentElement){documentScrollHeight = document.documentElement.scrollHeight;} scrollHeight = (bodyScrollHeight - documentScrollHeight > 0) ? bodyScrollHeight : documentScrollHeight; return scrollHeight; } window.onscroll = function(){ if(__getScrollTop() + __getWindowHeight() == __getScrollHeight()) doFun(x) }; } function doFun(x){setTimeout(x,0)}