已采纳回答 / once829
解决方法:var flag = true;这句要放在定时器内。原因:如果放在外面,第一次运行传入定时器内的flag值为true,第一遍检测下列代码时 if (icur != json[attr]){ flag = false; }返回的flag值为false,接下来30毫秒又重新执行一遍定时器,flag的值还是为false,直到icur全都等于json[attr]时flag的值依旧不变,因此不会执行停止定时器的代码。换句话说,定时器在重复执行spee...
2016-07-03
已采纳回答 / once829
var lis_style=window.getComputedStyle(obj,null), wd=lis_style.width;定义变量要放在定时器内部。放在外部的话,第一次传入定时器内的wd值为260,再一次执行定时器不会重新上诉代码,因此wd的值始终为260,所以效果显示出来就是停在了宽度为270的地方。
2016-07-02
已采纳回答 / 右下角_
问题出现当 触发onmouseleave 时,传入speed=5,而star_1 中的局部变量speed=5,由于itarget=-160<0,所以,speed=-speed,即此时局部变量speed=-5,而下一个50ms,由于itarget=-160<0不变,继续执行speed=-speed,即此时局部变量speed=5了,到此发现问题了,在定时器的作用下,speed会在5与-5之间来回变动,有没有达到任何 你设置的 停止条件,就出现了 无限制的抖动。而如果speed=-5,固定值 就不会...
2016-07-01
已采纳回答 / 紫菜中毒
2-1这节的运动是做匀速运动的,而且参数简化到剩下一个。 if(div.offsetLeft>目标值200){ speed=-10; //速度是10刚好会到0,如果速度是-8 是不是到最后还有一个余数 -4px//oDiv.style.left = oDiv.offsetLeft + speed + 'px'; 是不是 left就会有稍微有偏移量 ;反之亦然,所以会一直抖动。定时器是30ms启动一次,课程里面 已经是 left就是都到节点值 他就一直维持不动了。 比如你现在宽度 设置成 你...
2016-06-24
已采纳回答 / 盛夏孤星
ali[i].onmouseover=function(){ startMove(this,'height',400); }和 ali[i].onmouseover=function(){ startMove(this,'width',400); }是同一个对象,它只能按顺序执行,不能同时执行,因此忽略了width
2016-06-23
已采纳回答 / 静语默言
js中的数字都是用浮点数表示的你可以看一下每次opacity+0.1得到的值<...图片...>你也可以看一下这篇文章https://segmentfault.com/q/1010000000137297了解一下浮点数的运算关于你的问题有两种解法第一种解...
2016-06-22
已采纳回答 / 害羞长颈鹿
先清除浏览器默认样式 body{margin:0;padding:0;} 要不然你的oDiv.style.left = oDiv.offsetLeft+1+'px'; 只会是每次加9
2016-06-21
已采纳回答 / 秦月殇
1、var timer=null应该声明在function函数外面。若声明在函数内部,每次调用函数时都会在函数内部声明一个timer变量,且每个timer变量都不相同,所以clearImterval(timer)不起作用。与换成onclick没有关系。2、timer=setInterval().
2016-06-21
已采纳回答 / 火星上的鱼
首先,是clearInterval(timer)不是(time)。其次,你的Div默认left值就是0,startMove引入的目标变量也是0,鼠标移入时自然不会出现动画,修改一下变量值。当然,最重要的是你的div没有设置定位属性。
2016-06-20
已采纳回答 / luofs
onmouseover=startMove;其中startMove本身就是函数,当鼠标经过时执行startMove函数,而onmouserover=function(){startMove()}是函数嵌套函数,当鼠标经过时执行一个函数,这个函数里面再运行startMove函数,这样就显得画蛇添足了。增加代码量,影响代码执行效率。
2016-06-20
已采纳回答 / Sun___
首先 将for循环中的“ var timer = null,”删除。因为(1) timer在使用 “box[i].timer=null;”之后,timer变成了自定义属性,不是变量,不要用var定义。(2) 语句结束用" ; "结尾。 其次 将函数function boxChang(obj,iTarget)中的每一个timer 、opacity前面加上“ obj. ”, 但是“obj.style.filter = 'alpha(opacity'+opacity+')';”中只需在最后一个"opac...
2016-06-16
已采纳回答 / lemonTree123
if(speed>iTarget){ speed= -10; }else{ speed= 10; }应该是if(opacity>iTarget)
2016-06-16