垂直无缝滚动图片(兼容性好)实例教程源码下载(3)
作者:YAOHAIXIAO 来源:YAOHAIXIAO博客 时间:2010-04-06 12:16:00
clearTimeout(itimeoutid)
clearTimeout()方法的功能是停止定时器,大家看上面的代码:
clearTimeout(o.scrollTimer);
Timer(定时器),够直接吧。那么为什么要停止定时器?什么时候停止呢?
为什么要停,我想用个反问:能一直不停吗,你的机器受得了吗?这里我想应该说说我们使用setTimeout的目的,我们通常使用它来实现像本例这样的动画效果。需要在很短的时间内连续不断的执行定时器,当然它是要占资源的啊。想想,只是不断的创建,而且往往我们做的处理,在1秒中内会执行很多次函数,一两次还好,上百上千次,而且一个复杂些的动画,执行很短的时间内几万次也不是没有可能事情。你想想,如果我们不在每执行完一次后,销毁它。要是再加上定时器执行的函数又是个比较NB点的运算,你的宝贵的系统资源…,呵呵!
所以应该向我给的例子中那样,记得在每次执行了定时器后停止(销毁,释放资源)它。
function whatWeDoNow(){ var str = 'this is what we do now'; if(doalert) { clearTimeout(doalert); // clear } var doalert = setTimeout(function(){ alert(str); },1000);}if (o.scrollTimer) { clearTimeout(o.scrollTimer); // clear}
呵呵,其实销毁的方法很简单,就是在每次创建定时器前,判断是否已经创建了订时器,就像特效例子中的
if (o.scrollTimer) { clearTimeout(o.scrollTimer); // clear}….….if (o.scrollHeight % s_area.offsetHeight == 0) { o.scrollTimer = setTimeout(anim, o.speed);}else { o.scrollTimer = setTimeout(anim, 10);}
逻辑就是:
是不是一个很流畅的循环?现在大家应该知道了,为什么要clearTimeout和何时clearTimeout了吗?