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

JS动画效果

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

已采纳回答 / 我就叫李二毛
<...图片...>自己看。

已采纳回答 / kodona
setinterval()中的时间是每次重复运行的时间间隔,而animate是指定动画运行多长时间,animate中运行快是老师设置的原因

已采纳回答 / qq_yEs先生_53591812
用来判断的 speed=speed>0? 语句1:语句2;  如果speed判断为true则执行语句1,反之执行语句2

已采纳回答 / 桐谷还灬和人
因为没有具体代码没法具体判断:可能性有一下几个。------1.stopMove的 if  判断范围没写对。致使滑块"滑过了"。2.stopMove定时器没有清除。导致鼠标触发”滑回效果“,然而没有清除定时器clearInterval,导致计时器一直计时下去。在我们眼里看来就是”滑出去了“。

已采纳回答 / 北葵
因为speed/10,小于1了,就会停止了。 200-190=10,所以会停在190.5。大概是这么 回事 。

已采纳回答 / 不再使用
speed=speed>0?Math.ceil(speed):Math.floor(speed);速度大于0就往上取整(用于显示出来)速度小于0就往下取整(用于缩回隐藏)等到最后速度(绝对值)小于1px/30ms的时候不至于被浏览器忽视(小数不承认)你这个情况是不是没有写这一句判定 

已采纳回答 / 小菜鸟飞
我觉得,因为他根本到不了0,,你的left是-468,一次加10,等到了-8的时候在加10,就是2,也不是0,就继续循环了,,你把left改成-460试试 ,应该就可以了

已采纳回答 / 穿皮夹克的大熊
offsetLeft 为数值  不该+pxfunction leave(){            clearInterval(timer);        timer = setInterval(function(){                var c = document.getElementById('yu');        if(c.offsetLeft <= -480){            clearInterval(timer);        }        else{...

已采纳回答 / YuuyaRin
因为之前定时器的循环里,因为最后结果都是差零点几,结果最后导致多执行一次来满足target,然后最后运动的距离就超出了,负的向下取整,正的向上取就是为了弥补上除法除出来差的那零点几,然后就不会多执行那一次循环,就避免了超出和未运动到的情况

已采纳回答 / 不如怀念o
只要不是立即执行的代码,放在哪无所谓,而且你用的是onload事件,本身就是页面加载完才执行。如果在别的浏览器中可以实现,而在火狐中不行时,可以试试加上前缀-moz-opacity。ps:火狐以前很强大,现在让人觉得很垃圾,还是谷歌的chrome标准支持的好。

已采纳回答 / 不如怀念o
aLi[i].timer=null;首先说一下,timer是节点自定义属性,不需要初始化为null;你应该去看看width、clientWidth、offsetWidth的定义。

已采纳回答 / 不如怀念o
timer不是变量,它只是节点的自定义属性,直接就可以添加;而且声明变量的方式是错误的,所以下面的代码不会执行,建议多看控制台信息。那个女老师讲的课还是有很多问题的。

已采纳回答 / 蓝天__大海
是IE浏览器的透明度的书写格式

已采纳回答 / 善良阿呆
startMove(this,300);你的css原来样式为200px啊
课程须知
1.您至少已经具备JavaSript的知识。2.您已经具备一些开发经验。
老师告诉你能学到什么?
1.使用定时器实现简单动画。2.如何一步步封装库。2.培养编程的思想。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消