慕粉3988711
2016-11-05 23:11
如题文所示,oDiv[i].timer=null;这段代码意味着在所有的oDiv[i]里添加一个timer属性使得不同oDiv调用不同timer,但老师最后一个多物体透明例子我看遍了全部代码都没有加oDiv[i].timer=null,反而在startMove中直接使用obj.timer.............实际效果正如老师所演示的一样,完全可以多物体透明,于是我在window.onload下的for循环中手贱加了句oDiv[i].timer=null;
for(var i=0;i<oDiv.length;i++){
oDiv[i].timer=null;
//代码
}
于是神奇的是我加了oDiv[i].timer=null;和老师不加这个,实现的效果完全一样?这是怎么回事?
综合了所有答案我总结了下
1.obj.timer=setInterval(function(){//设置计时器同时定义了obj.timer
2.oDiv[i].alpha=30;//定义alpha
3.与obj.style.opacity类型一样obj.timer和oDiv[i].opacity不用声明直接定义即可
我也注意到这个问题了求解
连续点击多次,看看透明度变化的快慢;
需要说明一下,清不清空计时器不影响透明度改变的实现,清空计时器只是不行让计时器叠加,如果一个物体在打开计时器之前没有清空之前打开的计时器,那么透明度的变化速度就会加快;如果先清空计时器,就可以实现各个物体透明度变化速度一致。
JS动画效果
113925 学习 · 1443 问题
相似问题