已采纳回答 / 全国花式抖腿冠军
是可以直接调用已经存在的函数的,但是不能加上()加上()的意思是当网页加载完毕之后直接调用函数,所以你可以试一下,只写onmouseover事件而不写onmouseout事件,打开文件就会有反应所以,DOM0级事件处理方法是可以直接调用已经存在的函数的,也就是你想的那种,无参函数直接写就行了比如show(){}函数,调用的时候直接写show就可以了,不需要加(),但是有参函数因为需要传入参数,所以必须写在匿名函数中才能达到期望的效果.
2016-07-10
已采纳回答 / 右下角_
嘿嘿,最近有点忙,来晚了。这个问题我也没注意,最终发现,是obj.timer = null;clearInterval(obj.timer);这里两句出了问题,当obj.timer=null;时,后者 相当于clearInterval(null)。有没有发现问题呢?对,就是这样导致后者并没有将原有定时器结束,而obj.timer=null,本身只是将obj.timer 指向了一个空值,亲测它没有结束定时器的能力。也就是说当前一个定时器没有结束的时候,再次触发事件,仍然会导致定时器的叠加。解决办法就是将ob...
2016-07-06
已采纳回答 / 右下角_
抱歉啊,前面的回答,并没有解决你的问题,又看了下代码,发现问题就在 你把速度固定了,也就是当 width达到目标值400的时候,而height此时400 并没有达到目标值,定时器不会停止,下一次 而width的值就变成了410,大于了width的目标值400,而当 height达到目标值时,width的值也在逐渐增大,早就超出了目标值的400,这样就永远不会停止了,也就是说除非 width同时达到目标值,例如lis_over(oli,10,0,{width:400,height:400});否则都不会停止...
2016-07-05
已采纳回答 / 右下角_
width的第一次 onmouseover触发参数为 wd=260,itg=500,lg=0,满足 else if(wd<itg&&lg==0) 这个条件,自然就被你clear掉了
2016-07-04
已采纳回答 / 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