网络编程
位置:首页>> 网络编程>> JavaScript>> 垂直无缝滚动图片(兼容性好)实例教程源码下载(3)

垂直无缝滚动图片(兼容性好)实例教程源码下载(3)

作者:YAOHAIXIAO 来源:YAOHAIXIAO博客 发布时间:2010-04-06 12:16:00 

标签:无缝滚动,教程,setTimeout

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了吗?

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com