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

JS动画效果

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

最新回答 / Neil丶
如果attr你给他heigth值,那每次获取到的是当前height值,意思就是每次获取得到的icur是不一样的,然后speed=(iTarget-icur)/8得到的速度就不时匀速的。我是这样理解的!

已采纳回答 / 小感冒
复制了一下你的代码测试了一下,应该是停在-190.5这个数的。原因我理解的是这样的:因为-190.5还差-9.5就达到了-200,但是如果在进行运算的话,就是比-200小了。好比10/3,结果是3余1,永远会留下一个1,这个1就相当于上面所说的-9.5.

已采纳回答 / haoyuanlin
这个可能是高度达到的时间比较短,然后在封装的startMove中判断动画停止的时候认为目标值已经达到,所以执行了clearInterval(time);所以width达不到预期
var flag = true; 这句要放在定时器setInterval()器里面,才能解决链式运动(Fn)无法实现的问题。
至于为什么不用 if(icur != json[attr]){ flag = false; }
else{flag = true;} 这个方式解决,
是由于,这个方式会出现一个小bug,
moveFn(lis,{opacity:50,width:300},function(){
moveFn(lis,{width:100,height:50});
});
鼠标移开事件这样写,在第二链时,前面width值 > height值,出现错误!
留爪,超赞
封装后 简直太帅了
抄袭智能社
不错, 还是光看没练习实践题,现在还是什么都不会。。。。
bug!bug!bug!

已采纳回答 / 樱花飞落ll
把你其他的代码也发上来,可能不是clearInterval(timer)这句的问题,看一下你的计算速度的代码是写在setInterval里面的不

最新回答 / 樱花飞落ll
你取宽度的时候肯定用的是offsetWidth,它等于宽度+边框的宽度,firefox要用getComputedStyle(obj,null)[attr]
没有老师的源代码,我这懒人,,,
在flag的那句if里面添加else{flag=true}就行了,这样就能理清楚过程了
function getStyle(obj,attr){
if(obj.currentStyle){
return obj.currentStyle[attr];

}
else{
return getComputedStyle(obj,false)[attr];
}
}eferenceError: currentStyle is not defined


if(obj,currentStyle){

啥意思啊
课程须知
1.您至少已经具备JavaSript的知识。2.您已经具备一些开发经验。
老师告诉你能学到什么?
1.使用定时器实现简单动画。2.如何一步步封装库。2.培养编程的思想。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消