已采纳回答 / wanoneQ
第八行 oar=getStyle(obj,attr)*100;中getStyle(obj,attr)需要用parseFloat()函数转换为数字,再四舍五入提高准确度。oar=Math.round( parseFloat( getStyle(obj,attr) )*100);另外你的速度有问题,建议提高精确度采用缓冲动画,防止边缘抖动。
2016-02-19
已采纳回答 / Betsey
第44行的attr没有定义,应该把attr换成'width',因为attr是在getStyle()里面的局部变量,离开了getStyle()就会销毁
2016-02-19
已采纳回答 / 慕容6759333
比如移动到的目标值是300px,通过300减去当前的坐标0,再除以20,结果是15,div以15的速度向右移动,这是第一次定时器执行的结果。30毫秒后再执行一次,目标移动到了15,通过300减去当前坐标15结果是285,285除以20结果的14.25,这样一次次运算下来,速度越来越小,比如速度是15、14.25、12.73、7.2。。。。这样的。由于数值设置的原因,div移动到一定px后,进行相减再除20的运算后会出现小数,比如0.75,比如这时div移动到了290,程序里写到div的left=oDiv....
2016-02-17
最赞回答 / qq_发条橙子_0
box2.onmouseover=omove; 执行这条语句的意思是box2的鼠标事件指向一个叫omove名字的function;box2.onmouseover=omove(0);执行这条语句的意思是box2指向的是omove运行的结果,而结果自然要运行出来才知道,omove函数就直接被调用了。于是不等鼠标over分享框就自己动起来了。但是omove又要接收参数,所以就把omove放在一个function里面。
2016-02-17
已采纳回答 / hiccup_dai
<script type="text/javascript"> $(function(){ $('#move a').mouseenter(function(){ $(this).find('i').animate({top:"-25px",opacity:"0"},300,function(){ $(this).css({top:"30px"}); $(this).animate({top:"20px",opacity:"1"},200) }) ...
2016-02-17
最新回答 / Neil丶
如果attr你给他heigth值,那每次获取到的是当前height值,意思就是每次获取得到的icur是不一样的,然后speed=(iTarget-icur)/8得到的速度就不时匀速的。我是这样理解的!
2016-02-01
已采纳回答 / 小感冒
复制了一下你的代码测试了一下,应该是停在-190.5这个数的。原因我理解的是这样的:因为-190.5还差-9.5就达到了-200,但是如果在进行运算的话,就是比-200小了。好比10/3,结果是3余1,永远会留下一个1,这个1就相当于上面所说的-9.5.
2016-01-31
已采纳回答 / haoyuanlin
这个可能是高度达到的时间比较短,然后在封装的startMove中判断动画停止的时候认为目标值已经达到,所以执行了clearInterval(time);所以width达不到预期
2016-01-31