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

JS动画效果

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

最赞回答 / 伴山客
终于想通了,还是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元素。

最新回答 / MarvelYao
clearInterval(timer),应该是obj.timer调试看看动画过程是否正确取值和设置值flag在里面的时候,外面的判断取不到flag的值,obj.timer关不掉。效果看起来当然一样,跟第一问差不多。

已采纳回答 / qq_Moderato_0
传参数fn时,不能用this了,可以在外边 var that = this,不然里面this的指向会变成window。

已采纳回答 / 德川家康
当div完全显示的时候,odiv.offsetleft为0,想让它缩回去,你设target为-200,然而你判断条件是odiv.offsetLeft>=target,条件成立,执行  clearInterval(timer);,自然缩不回去。

最新回答 / qq_欧阳贝贝_0
offsetLeft 是距离屏幕左部的距离。odiv.style.left=odiv.offsetLeft+10+"px"说明:odiv样式左边,等于,odiv每次向左屏幕移动10像素。

已采纳回答 / cRCHAN
有没有看完那节课?课程后面讲了,是因为盒子的原因,真正的宽度是设置的width值再加上边框的值*2(因为有左右边框)。offsetWidth读取的是width加上border的值,而style.width只是width的值。原先来说是oDiv.style.width + 2 = oDiv.offsetWidth(这里不是赋值,而是普通的相等)。实际oDiv.offsetWidth比oDiv.style.width大2像素,赋值运算的时候,虽然offsetWidth - 1了,也还是比style.width...

最新回答 / qq_f繁华似锦_0
第8行,是this,不是$(this),你用js写的jquery
课程须知
1.您至少已经具备JavaSript的知识。2.您已经具备一些开发经验。
老师告诉你能学到什么?
1.使用定时器实现简单动画。2.如何一步步封装库。2.培养编程的思想。

微信扫码,参与3人拼团

微信客服

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

帮助反馈 APP下载

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

公众号

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

友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消