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

JS动画效果

vivian Web前端工程师
难度初级
时长 2小时 8分
学习人数
综合评分9.60
537人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.4 逻辑清晰
52行 代码 opacity写错了!
同意@paPa_PA 的回答 offsetWidth包含了边框,而clientWidth只包含了内边距和内容不包含外边框 更加方便
讲得很好,希望老师以后能够出更多视频!!!
这讲课的风格跟智能社javascript的BLUE老师一模一样啊
由于onmouseover事件冒泡,所以当鼠标在a标签内不断移动(不出a标签的范围)会不断碰到a标签内的子元素,事件再冒泡到a,使得不断出发a.onmouseover事件,结果就是里面的小图片不停地动,改成onmuseenter,这个事件不冒泡或者写代码取消onmouseover的冒泡。
当要获取float属性的时候,使用键值会有bug。
IE:obj.style["styleFloat"]
其他:obj.style["cssfloat"]
淘宝图标像是字体,不像是图片???
淘宝的图标下不下来~
老师讲的很好。例子很生动。
用clientWidth代替offsetWidth也可以解决
老师的onmouseover函数放这坑死我了,一直不停的在上下出来,明明应该onmouseenter才更合适嘛
貌似obj没有定义哎
为了解决这个问题,Math.ceil就派上用场了,它会把0.75向上取整为1,这样div就又可以向右移动1px了,这时里目标点很近了,就以1的速度慢慢到达300,然后停止定时器。
同理,向左移动,计算出来的速度会是负值比如-0.75,就用Math.floor把速度向下取整为-1,这样,就避免了卡在某个像素点不动的问题。
Math.floor还是ceil这些运算的目的不是要把speed取到0,而是要让浏览器可以继续运算下去,然后用我们的if条件判断,等于itarget了就结束运动。
由于数值设置的原因,div移动到一定px后,进行相减再除20的运算后会出现小数,比如0.75,比如这时div移动到了290,程序里写到div的left=oDiv.offsetLeft+speed+'px',那么div的left就是290.75px,而浏览器是不允许出现小数的,会把0.75去掉,那么div的left就成了290,下次执行时div的left是290,算出来速度还是0.75,浏览器又省略了小数,结果就是div停在了290px,到不了目标点300。
课程须知
1.您至少已经具备JavaSript的知识。2.您已经具备一些开发经验。
老师告诉你能学到什么?
1.使用定时器实现简单动画。2.如何一步步封装库。2.培养编程的思想。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消