JS判断滚动条是否停止滚动,兼容IE和火狐浏览器

 
更多

最近有个项目中遇到这样一个问题:

有一个用于展示数据的带滚动条的DIV块,业务需求是当滚动条滚动时,将数据库中的数据读出并展示出来。这个本身问题不大,但实际中却发现存在这样一个问题,即当数据量比较大的时候,当滚动条滚动时,会不停的向后台发出数据请求,这个在访问量达到一定规模的时候,对服务器和浏览器都造成了巨大的压力。

为了解决这个问题,作者想到一个办法是当滚动条停止时,才向服务器发送请求数据。但是碰到个问题就是如何判断滚动条是否停止了呢?经过几番研究终于解决了,在这里作者和大家分享一下如何通过js判断浏览器滚动条是否停止滚动(这里的效果是兼容IE和火狐浏览器)。

<html xmlns="http://www.phpernote.com/javascript-function/194.html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JS判断滚动条是否停止滚动示例</title>
<script type="text/javascript">
var topValue=0,// 上次滚动条到顶部的距离
interval=null;// 定时器
window.onscroll=function(){
	if(interval==null)
	interval=setInterval("test()",1000);//这里就是判定时间,当前是1秒一判定
	topValue=document.documentElement.scrollTop;
}

function test(){
	// 判断此刻到顶部的距离是否和1秒前的距离相等
	if(document.documentElement.scrollTop==topValue){
		alert("滚动条停止滚动了!");
		clearInterval(interval);
		interval=null;
	}
}
</script>
</head>
<body>
<div style="height:2000px;">http://www.phpernote.com/jquery/251.html</div>
</body>
</html>

以上可以更改定时判断的时间,时间越短,相应的越及时,用户体验效果越好,但相应的客户端浏览器的压力会越大。

打赏

本文固定链接: https://www.cxy163.net/archives/4066 | 绝缘体

该日志由 绝缘体.. 于 2013年05月23日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: JS判断滚动条是否停止滚动,兼容IE和火狐浏览器 | 绝缘体
关键字: , , , ,

JS判断滚动条是否停止滚动,兼容IE和火狐浏览器:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter