为了账号安全,请及时绑定邮箱和手机立即绑定

JS动画效果

vivian Web前端工程师
难度初级
时长 2小时 8分
学习人数
综合评分9.60
537人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.4 逻辑清晰
@ritasun 比如移动到的目标值是300px,通过300减去当前的坐标0,再除以20,结果是15,div以15的速度向右移动,这是第一次定时器执行的结果。30毫秒后再执行一次,目标移动到了15,通过300减去当前坐标15结果是285,285除以20结果的14.25,这样一次次运算下来,速度越来越小,比如速度是15、14.25、12.73、7.2。。。。这样的。

已采纳回答 / 慕容6759333
<...code...>第四行offsetLeft没打对!
跟着敲的代码,可以参考~ https://github.com/seminelee/js/tree/master

已采纳回答 / kaiyanghll
 function getStyle(obj,attr){     if(obj.currentStyle){ return obj.currentStyle[attr]; } else{       return getComputedStyle(obj,false)[attr];   }  }  function startMove(obj,iTarget,attr,fn){        clearInterval(obj.timer);  ...

已采纳回答 / witchy
你for循环少写了花括号吧 没有括起来

已采纳回答 / wanoneQ
第八行 oar=getStyle(obj,attr)*100;中getStyle(obj,attr)需要用parseFloat()函数转换为数字,再四舍五入提高准确度。oar=Math.round( parseFloat( getStyle(obj,attr) )*100);另外你的速度有问题,建议提高精确度采用缓冲动画,防止边缘抖动。

已采纳回答 / Betsey
第44行的attr没有定义,应该把attr换成'width',因为attr是在getStyle()里面的局部变量,离开了getStyle()就会销毁
@外号理论汪 你好,能麻烦发一份到我邮箱吗1164553318@qq.com 多谢了
咦.....我发现楼下的楼下的楼下也有一只老绵羊
关于这个透明度完全可以不用加parseFloat呀,不是吗
谢谢老师!

最新回答 / 梦幻大使
offsetWidth的宽度包括了width和border
老师讲讲的好好,受益匪浅,大赞!!

已采纳回答 / 慕容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....

最赞回答 / qq_发条橙子_0
box2.onmouseover=omove; 执行这条语句的意思是box2的鼠标事件指向一个叫omove名字的function;box2.onmouseover=omove(0);执行这条语句的意思是box2指向的是omove运行的结果,而结果自然要运行出来才知道,omove函数就直接被调用了。于是不等鼠标over分享框就自己动起来了。但是omove又要接收参数,所以就把omove放在一个function里面。
课程须知
1.您至少已经具备JavaSript的知识。2.您已经具备一些开发经验。
老师告诉你能学到什么?
1.使用定时器实现简单动画。2.如何一步步封装库。2.培养编程的思想。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消