最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

当滚动条滚动到页面底部自动加载增加内容的js代码_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:23:08
文档

当滚动条滚动到页面底部自动加载增加内容的js代码_javascript技巧

当滚动条滚动到页面底部自动加载增加内容的js代码_javascript技巧:1,注册页面滚动事件,window.onscroll = function(){ }; 2,相关获取页面高度、滚动条位置、文档高度的函数: 代码如下: //获取滚动条当前的位置 function getScrollTop() { var scrollTop = 0; if (document.document
推荐度:
导读当滚动条滚动到页面底部自动加载增加内容的js代码_javascript技巧:1,注册页面滚动事件,window.onscroll = function(){ }; 2,相关获取页面高度、滚动条位置、文档高度的函数: 代码如下: //获取滚动条当前的位置 function getScrollTop() { var scrollTop = 0; if (document.document


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

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

文档

当滚动条滚动到页面底部自动加载增加内容的js代码_javascript技巧

当滚动条滚动到页面底部自动加载增加内容的js代码_javascript技巧:1,注册页面滚动事件,window.onscroll = function(){ }; 2,相关获取页面高度、滚动条位置、文档高度的函数: 代码如下: //获取滚动条当前的位置 function getScrollTop() { var scrollTop = 0; if (document.document
推荐度:
标签: 加载 网页 js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top