/** 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)}