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

JS动画效果

vivian Web前端工程师
难度初级
时长 2小时 8分
学习人数
综合评分9.60
537人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.4 逻辑清晰
挺好的,简单明了
评论区个个都是人才,说话又好听,超喜欢这里

最新回答 / 慕梦前来
定时器里的变量要控制好,
1、flag=true,应该立在定时器内,json的for遍历前;
var flag=true;定义在了for-in外面,而因为json中的属性无法第一次就运动到目标值,所以flag的值一定会变为false。变为false之后,当所有的属性值都运动到目标值也没有语句使它变为true,所以fn()不会执 行。
2.if(flag){clearInterval(obj.timer);if(fn){fn()}}应该放在定时器内,json的for遍历后:
因为在循环里面的话第一个属性达到目标值后就会执行clearInterval(obj.timer),从而关闭定时器其他属性还未达成目标值

最新回答 / 慕粉3074769
当使用绝对定位的时候行内元素会呈现块状元素效果。
position: absolute;
<...code...>
2017年的那些事:http://www.imooc.com/article/22712
2017年的那些事:http://www.imooc.com/article/22712

已采纳回答 / Zkan
Li1.onmouseout = function () {stratMove(this, 'opacity', 30);}start拼写错误,其他没看
可以用3个animate连缀完成
$(this).find(&quot;i&quot;).animate({top:&quot;-10px&quot;,opacity:&quot;0&quot;},300)
.animate({top:&quot;20px&quot;},300)
.animate({top:&quot;10px&quot;,opacity:&quot;1&quot;},300);
关于完美框架链式运动的bug:var flag=true;定义在了for-in外面s定时器里面,当所有运动完成后,不会改变定时器里面开始的var flag=true ,最后执行停止定时器和下面的fn(),已用alert验证执行了fn(),但是如果再次在这里调通startMove()的话就会导致报错getStyle函数Failed to execute &#039;getComputedStyle&#039;。这里再调通startMove()是obj不能再用this,这里this已经改变了目标,换成确定的obj就可以执行,亲测,有问题请指出,共勉!!!
大大的问题。getComputedStyle()和currentStyle得到的都是计算后的最终样式。放在这里作为运动过程中获取变化的属性值是不恰当的。不知道大家深入考虑过没有。或者说实际敲过没有。放在浏览器上运行一下就知道不可行了。因为封装的运动函数获取的属性不确定,所以不能使用快捷位置获取初始样式,那就需要手动输入,而不是用getComputedStyle()和currentStyle去获取,可以把这个初始值作为参数传进去。

最新回答 / qq_彩虹_21
要是缓冲运动就不需要flag
在css中使用transition属性就可以不需要使用定时器了,直接写一个判断即可
课程须知
1.您至少已经具备JavaSript的知识。2.您已经具备一些开发经验。
老师告诉你能学到什么?
1.使用定时器实现简单动画。2.如何一步步封装库。2.培养编程的思想。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消