最赞回答 / wy_dxl
第一个函数相当于通知它去改变宽度,通知完之后,不管完成没完成,都继续执行第二个函数了,而第二个函数里面也有clearInterval();就把前一个未执行完的动画清除了,相当于覆盖了。(改变宽度可能要300ms,而通知可能就要1ms,第二个函数通知的时候也就1ms,很快,就相当于覆盖了),不知道我说明白了吗
2016-03-01
已采纳回答 / 呆4
经过我的测试,可以这样理解,在执行第一个startmove中定时器里面的函数的时候是在设定的30ms后才会执行第一次定时器里面的函数,但之后的程序仍然会继续执行,所以这时就会继续执行下一个startmove函数,而下一个startmove的第一步就是clearinterval,所以你会发现,第一个startmove的定时器中的函数其实根本就没有执行,宽度根本一次都没变,第一个startmove中的定时器在还没有等到30ms开始执行的时候就已经被clearinterval了,所以你会感觉是第一个没执行完就开...
2016-03-01
同意@paPa_PA 的回答 offsetWidth包含了边框,而clientWidth只包含了内边距和内容不包含外边框 更加方便
最赞回答 / 撞门人
不该在遍历内添加flag = true;的,假设有两个CSS属性,第一个icur != json[i] 这时flag =false,但是到第二个属性时如果icur == json[i],此时flag = true,将第一个false覆盖。所以不能达到想要的效果
2016-02-27