1,注册页面滚动事件,window.onscroll = function(){ };
2,相关获取页面高度、滚动条位置、文档高度的函数:
复制代码 代码如下:
//获取滚动条当前的位置
function getscrolltop() {
var scrolltop = 0;
if (document.documentelement && document.documentelement.scrolltop) {
scrolltop = document.documentelement.scrolltop;
}
else if (document.body) {
scrolltop = document.body.scrolltop;
}
return scrolltop;
}
//获取当前可是范围的高度
function getclientheight() {
var clientheight = 0;
if (document.body.clientheight && document.documentelement.clientheight) {
clientheight = math.min(document.body.clientheight, document.documentelement.clientheight);
}
else {
clientheight = math.max(document.body.clientheight, document.documentelement.clientheight);
}
return clientheight;
}
//获取文档完整的高度
function getscrollheight() {
return math.max(document.body.scrollheight, document.documentelement.scrollheight);
}
3,在html页面底部增加代码:
复制代码 代码如下:
这样当滚动条到达页面底部时就会触发alert(到达底部)。下面要做的就是将触发的功能改为ajax调用,往页面中动态增加内容。
4,动态增加页面元素的示例代码:
复制代码 代码如下:
var newnode = document.createelement(a);
newnode.setattribute(href, #);
newnode.innerhtml = new item;
document.body.appendchild(newnode);
var newline = document.createelement(br);
document.body.appendchild(newline);
将这段代码替换掉alert(到达底部);,就可以看到,当滚动条滚动到底部时,页面底部就会增加一行”new item“,不同往下滚动,不停增加,无止尽。
5,将示例代码修改为ajax相关代码:
复制代码 代码如下:
当滚动条到页面底部之后,就会增加以下节点,如下:
2 200
3 200 ajax ok
4 200 ajax ok
这里2、3、4,就是请求的状态readystate,200就是http的回应状态status,ajax ok是/ajaxtext应用返回的文本,具体查看以下参考资料。
按照xmlhttprequest的的文档说明,应该能够打印出:
0 200
1 200
2 200
3 200 ajax ok
4 200 ajax ok
但是我这里没有打印出0和1这两个状态,这是为什么呢,路过的高手方便吱一声吗?