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

JS动画效果

vivian Web前端工程师
难度初级
时长 2小时 8分
学习人数
综合评分9.60
537人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.4 逻辑清晰

已采纳回答 / 慕神7088389
因为startMove()开头就有一个clearInterval(obj.timer);fn()放前面先执行,就回调startMove(),然后直接停掉了定时器,然后就没有然后了。

最新回答 / Number_1
id="div1"  没有加引号

最赞回答 / 纸丶两面白
视频中flag的声明位置应该是写错了,实际上应该是写在定时器内。视频中为什么动画会停止?完全是因为speed归0了,动画停止了,但实际上定时器并没有停止,还在继续运行。

最赞回答 / 纸丶两面白
视频中flag的声明位置应该是写错了,实际上应该是写在定时器内。视频中为什么动画会停止?完全是因为speed归0了,动画停止了,但实际上定时器并没有停止,还在继续运行。

已采纳回答 / 夜莺_47
如果speed是正数的话,向上取整,比如0.5取到1才有意义,毕竟0.5是有速度的而不是0;如果speed是负数的话,向下取整,比如-0.5取到-1,-0.5会进行反向运动从而达到停止条件iTarget == icur,如果为负数向上取整则Math.ceil(-0.5) = -0则达不到iTarget == icur。因此负数要像下取整Math.floor()

已采纳回答 / 慕数据9255373
当你多次触碰时,上一次的定时器timer被 
var timer=null;
重新赋值了(即timer这个定时器的对象找不到了),导致clearInterval(timer),起不了作用。应该将var timer=null;写在函数的外面

最新回答 / qq_零_137
else {        icur = Math.round(parseFloat(getStyle(obj, attr)));      }这句错了,应该是else {icur = parseInt(getStyle(obj, attr)); //整数型}

最新回答 / qq_long妹_0
原因是style.width仅能返回以style方式定义的内部样式表的width属性值,故第24行代码需修改为<div id="div1" style="width: 200px"></div>,再把原先的width样式删除即可。
课程须知
1.您至少已经具备JavaSript的知识。2.您已经具备一些开发经验。
老师告诉你能学到什么?
1.使用定时器实现简单动画。2.如何一步步封装库。2.培养编程的思想。

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消