1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 当滚动条滚动到页面底部自动加载增加内容的js代码【javascript】

当滚动条滚动到页面底部自动加载增加内容的js代码【javascript】

时间:2020-07-14 05:08:07

相关推荐

当滚动条滚动到页面底部自动加载增加内容的js代码【javascript】

web前端|js教程

滚动条,页面底部,自动加载

web前端-js教程

1,注册页面滚动事件,window.onscroll = function(){ };

vpn加速器源码,vscode不能速览定义,ubuntu中smb,防火墙 tomcat,爬虫实战下载,php字母数字分割,南京seo搭建怎么选择公司,单页团队网站源码,discuz公众号模板下载lzw

2,相关获取页面高度、滚动条位置、文档高度的函数:

网站源码检测后门,vscode串口监视怎么用,Ubuntu画面太卡,tomcat上传war路径,脚本爬虫 Python,php获取手机位置,越秀区seo外包报价,y菜鸟教程网站模板,hibernate模板delete源码lzw

//获取滚动条当前的位置

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页面底部增加代码:

php电商源码,vscode调试chrom,ubuntu怎么搭建测试环境,测试tomcat线程,安卓sqlite操作,滚动触发动画插件,前端开发框架怎么学,推荐python 爬虫框架,php培训 中心,30岁学seo,手机工具网站源码,网页tips,dede模板怎么本地测试,奶茶页面的HTML源代码,php管理系统含前端,phpcms小程序导航网站源码lzw

window.onscroll = function () {

if (getScrollTop() + getClientHeight() == getScrollHeight()) {

alert("到达底部");

}

}

这样当滚动条到达页面底部时就会触发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相关代码:

window.onscroll = function () {

if (getScrollTop() + getClientHeight() == getScrollHeight()) {

var xmlHttpReq = null;

//IE浏览器使用ActiveX

if (window.ActiveXObject) {

xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");

}

//其它浏览器使用window的子对象XMLHttpRequest

else if (window.XMLHttpRequest) {

xmlHttpReq = new XMLHttpRequest();

}

if (xmlHttpReq != null) {

//设置请求(没有真正打开),true:表示异步

xmlHttpReq.open("GET", "/ajaxtest", true);

//设置回调,当请求的状态发生变化时,就会被调用,传递参数xmlHttpReq

xmlHttpReq.onreadystatechange = function () { onajaxtest(xmlHttpReq); };

//提交请求

xmlHttpReq.send(null);

}

}

}

function onajaxtest(req) {

var newnode = document.createElement("a");

newnode.setAttribute("href", "#");

newnode.innerHTML = req.readyState + " " + req.status + " " + req.responseText;

document.body.appendChild(newnode);

var newline = document.createElement("br");

document.body.appendChild(newline);

}

当滚动条到页面底部之后,就会增加以下节点,如下:

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这两个状态,这是为什么呢,路过的高手方便吱一声吗?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。