onscroll事件真的是一个头疼的事,因为他不像onclick,不像onmouseover,不像大多数的函数那样,我们滚动一次触发的函数是很多次的。我遇到的情况就是滚动一次触发一次事件,而不是多次,那么我们该怎么办呢,那么我们如何阻止函数的触发呢 ?
var itime=setTimeout(function(){},200);
document.οnscrοll=function(){
clearTimeout(itime);
itime=setTimeout(function(){},200);
}
这是我的解决方案,使用定时器,在200毫秒内再次触发是没用用的。
但是这个方案有两个缺点:
定义了一个全局变量 itime。
没有真的是让函数执行的次数变少。表面上是减少了,但是底层还是执行了很多次那个匿名函数。