用过scroll事件的人都知道,在每次拖动滚动条的时候会相应的事件会相应多次,而在大多数情况下我们都只希望它在滚动条停止滚动的时候 响应。经过多次测试,终于发现了一个比较好的解决方案,那就是通过setTimeout,给scroll加个延迟。例如用jQuery为页面加入 scroll事件,可以这样写:

  1. var timeout = false;    
  2. $(window).scroll(function(){    
  3.     if (timeout){clearTimeout(timeout);}    
  4.     timeout = setTimeout(function(){    
  5.         //do    
  6.     },100);    
  7. );    

 原文地址:http://www.lav.so/index.php?aid=2