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

JS动画效果

vivian Web前端工程师
难度初级
时长 2小时 8分
学习人数
综合评分9.60
537人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.4 逻辑清晰
自定义封装函数时 应该要精简
做的东西在火狐和IE上完美运行,在谷歌却不行。。。
怎么让它边运动 颜色边变呢?
为什么我按照老师的方法可以全部出去,但是不能全部缩回来,用别人的代码试也是这样,求指教
给大家分享一个一句可以代替判断速度正负代码的
源代码为:
if(oDiv.offsetLeft<target){
speed=10; //offsetLeft
}
else if(oDiv.offsetLeft>target){
speed=-10;
};

可以精简为
oDiv.offsetLeft>target?speed=-10:speed=10;
挺好的,简单明了
评论区个个都是人才,说话又好听,超喜欢这里
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),从而关闭定时器其他属性还未达成目标值
2017年的那些事:http://www.imooc.com/article/22712
2017年的那些事:http://www.imooc.com/article/22712
可以用3个animate连缀完成
$(this).find("i").animate({top:"-10px",opacity:"0"},300)
.animate({top:"20px"},300)
.animate({top:"10px",opacity:"1"},300);
关于完美框架链式运动的bug:var flag=true;定义在了for-in外面s定时器里面,当所有运动完成后,不会改变定时器里面开始的var flag=true ,最后执行停止定时器和下面的fn(),已用alert验证执行了fn(),但是如果再次在这里调通startMove()的话就会导致报错getStyle函数Failed to execute 'getComputedStyle'。这里再调通startMove()是obj不能再用this,这里this已经改变了目标,换成确定的obj就可以执行,亲测,有问题请指出,共勉!!!
大大的问题。getComputedStyle()和currentStyle得到的都是计算后的最终样式。放在这里作为运动过程中获取变化的属性值是不恰当的。不知道大家深入考虑过没有。或者说实际敲过没有。放在浏览器上运行一下就知道不可行了。因为封装的运动函数获取的属性不确定,所以不能使用快捷位置获取初始样式,那就需要手动输入,而不是用getComputedStyle()和currentStyle去获取,可以把这个初始值作为参数传进去。
在css中使用transition属性就可以不需要使用定时器了,直接写一个判断即可
老师回答的很具体,全面,不错。
课程须知
1.您至少已经具备JavaSript的知识。2.您已经具备一些开发经验。
老师告诉你能学到什么?
1.使用定时器实现简单动画。2.如何一步步封装库。2.培养编程的思想。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消