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

JS动画效果

vivian Web前端工程师
难度初级
时长 2小时 8分
学习人数
综合评分9.60
537人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.4 逻辑清晰
在css中使用transition属性就可以不需要使用定时器了,直接写一个判断即可
老师回答的很具体,全面,不错。
1.flag要放在setInterval回调函数外面声明并初始化为false
2.在setInterval回调函数开头判断flag,false表示动画没有执行完,true表示动画执行完毕需要关闭定时器
3.如果动画没有执行完,则在for..in..循环外将flag置为true,并在循环中分别判断每个动画是否完毕,完毕则不做任何动作,未完毕则执行动画并将flag置为false
还有就是speed的赋值部分可以拿到定时器外面,计算一次就好了,放在定时器里面那次数该多多少呀
老师那个边界检验还是存在跟之前一样的问题。
1判断界限的时候如果是==的话,假如运动速度不是整数或者换成不能被界限值整除的数,会一直运动下去,造成边界判断失效,所以判断界限时要用>=或者<=,所以mouseover和mouseout的时候两个函数不能如此简单的整合,加上边界判断,可能还没有分开写简单;2.考虑到事件冒泡,建议用mouseenter和mouseleave.

最新回答 / 天桥涂鸦
它是round的(float*100)
我到希望老师能给出代码,不然很多压根不理解,有代码想学好的就不会去抄

最赞回答 / 伴山客
终于想通了,还是flag的问题。大家注意,var flag =true;这句话一定一定要放在for-in外面理解如下:首先for-in虽然使得看起来是同步进行,但实际还是你定义的运动1,运动2,运动3 顺序操作。当放在外面的时候,三个运动是修改一个flag,有一个没满足都是false。而当flag定义放在循环里的时候,每一个运动的每一次操作,都会重置flag为true。模拟一下:假定速度为1.首先第一圈。宽是false,然运动,达到目标。高是false,运动,仍未达到。透明度是false,运动,仍未达到。...

最新回答 / 晖哥hg
can not set property onmouseover of null看错误,应该是未找到元素。尝试把js放在页面最底部再获取div元素。
clearInterval(timer)其他的都明白,唯独这个不明白 刚刚进入startmove()函数,这个的作用和效果不太明白
都是障眼法
要自己弹一弹
课程须知
1.您至少已经具备JavaSript的知识。2.您已经具备一些开发经验。
老师告诉你能学到什么?
1.使用定时器实现简单动画。2.如何一步步封装库。2.培养编程的思想。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消