广

JavaScript

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

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

    2018-04-05 08:32:05 次阅读 稿源:互联网
    零七广告

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

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

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

    1. <html xmlns="http://www.daimajiayuan.com/sitejs-17245-1.html"> 
    2. <head> 
    3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    4. <title>JS判断滚动条是否停止滚动示例</title> 
    5. <script type="text/javascript"> 
    6. var topValue=0,// 上次滚动条到顶部的距离 
    7. interval=null;// 定时器 
    8. window.onscroll=function(){ 
    9.     if(interval==null) 
    10.     interval=setInterval("test()",1000);//这里就是判定时间,当前是1秒一判定 
    11.     topValue=document.documentElement.scrollTop; 
    12.  
    13. function test(){ 
    14.     // 判断此刻到顶部的距离是否和1秒前的距离相等 
    15.     if(document.documentElement.scrollTop==topValue){ 
    16.         alert("滚动条停止滚动了!"); 
    17.         clearInterval(interval); 
    18.         interval=null
    19.     } 
    20. </script> 
    21. </head> 
    22. <body> 
    23. <div style="height:2000px;">http://www.daimajiayuan.com/sitejs-17245-1.html</div> 
    24. </body> 
    25. </html> 

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

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告