课程
/前端开发
/JavaScript
/JS动画效果
代码如下:
if (iTarget == icur) { if(fn){fn();} clearInterval(obj.timer); }
2017-08-03
源自:JS动画效果 5-1
正在回答
因为如果这样先判断有fn()方法时,会先执行调用fn()方法然后执行clearintval(),但是这时候浏览器并不会等到fn()方法执行完才去调用clearintval().它会直接清除fn()内的定时器。正好老师下节课会讲到同时调用两个 startMove()方法时会遇到的问题,这时只会执行第二个startMove()方法而不会一个一个调用也不会同时调用,原因就是第一个startMove()方法还没执行完第二个startMove()里的clearintval()就把第一个startMove()计时器清除了。这和你问的问题应该是同一个道理吧。个人理解,适当参考。
举报
通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装
1 回答if(flag){clearInterval(obj.timer);if(fn){fn()}}
1 回答链式运动调用fn的时候,为什么clearInterval(timer)必须在if(fn){fn();}这段代码之前。放在后面就不起作用了。
4 回答我认为最终的fn不会执行。
2 回答为什么fn后面要加括号?
1 回答flag放到定时器外面为什么fn就没法执行了