源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-08-16 12:56 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:当滚动条滚动到页面底部自动加载增加内容的js代码
1,注册页面滚动事件,window.onscroll = function(){ }; 2,相关获取页面高度、滚动条位置、文档高度的函数:
[u]复制代码[/u] 代码如下:
//获取滚动条当前的位置 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页面底部增加代码:
[u]复制代码[/u] 代码如下:
<script> window.onscroll = function () { if (getScrollTop() + getClientHeight() == getScrollHeight()) { alert("到达底部"); } } </script>
这样当滚动条到达页面底部时就会触发alert("到达底部")。下面要做的就是将触发的功能改为ajax调用,往页面中动态增加内容。 4,动态增加页面元素的示例代码:
[u]复制代码[/u] 代码如下:
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相关代码:
[u]复制代码[/u] 代码如下:
<script> 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); } </script>
当滚动条到页面底部之后,就会增加以下节点,如下: 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这两个状态,这是为什么呢,路过的高手方便吱一声吗?
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部