已采纳回答 / mingttong
倒数第5行的obj.offsetWidth=obj.offsetWidth+speed+'px'; 改为 obj.style.width=obj.offsetWidth+speed+'px';就可以了。一开始我也搞不懂为什么,百度了一下,说是obj.offsetWidth是数值,而obj.style.width是字符串,所以在用obj.offsetWidth+speed+'px'改变宽度时应该赋值给obj.style.width.
2016-04-16
已采纳回答 / 小爬虫8036
timer=setInterval();这里返回值给timer,这里clearInterval(timer)取消调用,总之你得定义一个timer吧,让它等于null只是给一个默认值,你直接定义var timer;也是可以的。
2016-04-14
已采纳回答 / 风随依然
首先,尽量不要用onmousemove去实验,而是用onmouseover.其次,odiv1.offsetLef ==0 其中,offsetLef 书写错误,应为offsetLeft.最后,解决方案,在css部分加上body{margin: 0; padding: 0;} 可使计时器生效。
2016-04-12
已采纳回答 / 从此浪迹天涯了无牵挂
你试一下把move.js里面的var flag = true;挪动到定时器里面。因为链式调用,如果调用结束第一个, if(icur !== json[attr]){ flag=false; } if(attr=='opacity'){ obj.style.filter='alpha(opacity:'+(icur+speed)+')'; obj.style.opacity = (icur+speed)/100; } else{ obj.style[att...
2016-04-12
已采纳回答 / 風雨纏溪
parseInt是获取整数,而后面的oDiv.style.width是获取的在body下面标签里的格式,之前用oDiv.offsetLeft是直接获取style里的值,但是在style里如果给oDiv加上了边框,那么offsetLeft就不能准确获取left的值了,而是获取left+边框的值,这里的oDiv.style.width不会有这个问题,但是还是很麻烦,因此后来又封装了一个函数,也就是getStyle()函数function getStyle(obj,attr){ if(obj.currentSt...
2016-04-11
已采纳回答 / 路漫漫兮2015
当(itarget-odiv.offsetLeft)/20=10/20=0.5PX时,oDiv.style.left = oDiv.offsetLeft+speed+'px';=190+0.5=190.5px,像素出现了小数程序无法执行下去。
2016-04-09
已采纳回答 / MoocChenWei
timer在这里需要为全局变量,在定时器前面加timer=,注意不能再加var,否则据就近原则,startMove函数中使用的timer就不是函数外部的全局变量了,就无法达到预期的效果~你试试看
2016-04-06
已采纳回答 / 青鸟衔音
<style type="text/css"> *{ margin: 0; padding: 0; } #move{ width: 300px; margin: 10px auto; border: 1px solid #ccc; } #move a{ display: inline-block; width: 58px; height: 25px; border: 1px solid #ddd; border-radius: 3px; b...
2016-04-05
已采纳回答 / 凝雨
obj.style[attr]是去取obj的样式中的某个属性,attr是变量。可以是height,可以是width。obj.style.attr是去取obj的样式中的attr属性,而实际上这个属性是不存在的,所以不行。还有 li1.onmouseout=function(){move(this,"widht",200)} 中的宽写错了
2016-04-05