offsetLeft除于20得到的数有时时小数,所以要向上取整。向上取整和向下取整有一个共同点。取到的数都是绝对值较大的那一个。当speed大于0时,向上取整。speed小于0时,向下取整(数的绝对值大)。
2016-06-13
我试了下 ,透明度filter:alpha(opacity:30);和oDiv.style.filter="alpha(opacity:"+alpha+")";去掉这两句执行效果不受影响,所以加这两句是什么目的?
2016-06-09
@NoLimits,不是吐槽,只是疑问,比如里面的动画过度的时间、线性变化,只要去改变css中的transition属性就行了为啥要绕这么大弯呢?如果是分析动画的原理可以理解,但在实际开发中这么去做是不是可取?好比本来做个地铁直接到的,你非得坐个长途转个公交? 还有代码精简、性能是不也要考虑,比如无数次的创建移除定时器这样好吗?
2016-06-07
这里有个小bug,当试着反复将鼠标移入移出的时候会有一定概率使if(oDiv.offsetLeft==iTarget)这个条件不成立,从而跳过该语句而持续进行else{oDiv.style.left=oDiv.offsetLeft+speed+"px"},最终使该div一直向左或者一直向右。
2016-06-07
看到很多人说把 flag放到定时器下面,其实也不是最完美的,因为定时器每30毫秒运行一次,就意味着不停重复的声明一个flag,在代码里,有一段判断 原来的值不等于目标值 if (icur != json[xx]) {,就把flag设为flase,然后应该在补上一段,else 如果等于就把flag设为true,就可以了,这样,第一个值达到目标,flag被改为了true,for循环第二个值时,如果未达标,依然会再次把flag设为flase
2016-06-06