最赞回答 / hellf
跟css中的{margin:0;padding:0;} 没有关系,你的代码中,判断offsetLeft 的条件改为: if(odiv.offsetLeft>=0) 它就停下来了 ,因为在不断移动的过程中,不一定有0这个值还有一个问题,进入startMove()时, 需要先清除一下定时器,目的是保证同时只有一个定时器在运行,你的代码还给你,就改了两个地方:<!DOCTYPE html><html><head><title>动画</title>...
2018-03-23
最新回答 / 慕丝2053625
你好,我也遇到了这个问题。正如老师所讲的那样,一定是有属性在到达自己的位置的时候,立刻触发了清除定时器,导致其他的属性虽然还没有到达target,就被终止了运行。当你再次用鼠标指向的时候,定时器只会被触发一次,for循环一遍,就遇到opacity属性已经变成1,因此目标宽度只被遍历1次,增长1,所以需要移入移出4次,这个情况将会在你把目标宽度修改成201时相当明显。
2018-03-13
最赞回答 / 伴山客
终于想通了,还是flag的问题。大家注意,var flag =true;这句话一定一定要放在for-in外面理解如下:首先for-in虽然使得看起来是同步进行,但实际还是你定义的运动1,运动2,运动3 顺序操作。当放在外面的时候,三个运动是修改一个flag,有一个没满足都是false。而当flag定义放在循环里的时候,每一个运动的每一次操作,都会重置flag为true。模拟一下:假定速度为1.首先第一圈。宽是false,然运动,达到目标。高是false,运动,仍未达到。透明度是false,运动,仍未达到。...
2017-12-20