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

JS动画效果

vivian Web前端工程师
难度初级
时长 2小时 8分
学习人数
综合评分9.60
537人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.4 逻辑清晰
其实还有个逻辑错误,加入flag其实只是避免了前面一个样式达到目标值之后后面的样式不动,但是没有避免后面的样式先到达目标值导致的错误,求点赞
为什么我没有遇到老师说的这种情况
额,老师用的offsetWidth来代表页面对象的cssWidth是不对的哦,并且说这是一个小bug,我要为offsetWidth喊冤。offsetWidth = width + borders + paddings。 建议先看下offsetWiths的定义。

已采纳回答 / 我一定不是吃货
你的for循环少了大括号,还有onmouseoover和onmouseout写错了。骚年要仔细啊。
老师,我发现了一个问题,在鼠标离开时,如果在没有滑到0就离开的话,div直接就一直向左走了,可以把设置oDiv.offsetLeft<=-200,可以解决此问题

已采纳回答 / 右下角_
抱歉啊,前面的回答,并没有解决你的问题,又看了下代码,发现问题就在 你把速度固定了,也就是当 width达到目标值400的时候,而height此时400 并没有达到目标值,定时器不会停止,下一次 而width的值就变成了410,大于了width的目标值400,而当 height达到目标值时,width的值也在逐渐增大,早就超出了目标值的400,这样就永远不会停止了,也就是说除非 width同时达到目标值,例如lis_over(oli,10,0,{width:400,height:400});否则都不会停止...

已采纳回答 / 右下角_
width的第一次 onmouseover触发参数为 wd=260,itg=500,lg=0,满足 else if(wd<itg&&lg==0) 这个条件,自然就被你clear掉了

已采纳回答 / once829
解决方法:var flag = true;这句要放在定时器内。原因:如果放在外面,第一次运行传入定时器内的flag值为true,第一遍检测下列代码时        if (icur != json[attr]){         flag = false;         }返回的flag值为false,接下来30毫秒又重新执行一遍定时器,flag的值还是为false,直到icur全都等于json[attr]时flag的值依旧不变,因此不会执行停止定时器的代码。换句话说,定时器在重复执行spee...
t=setInterval(function(){
div.style.left+=5+&#039;px&#039;
if(div.style.left&gt;=div.offsetWidth){
clearInterval(t)
}
我又看了一遍,
我是这么理解的:当flag = true;设置在定时器内、for-in前也有不好的,
定时器每执行一次,都声明一个flag。(浪费啊)
而在
if(flag){.....}
else{ flag = true ;}此处重置 flag 会更好。

最新回答 / 当爱随风
IE 只能兼容 filter:alpha(opacity: xx) 的形式而谷歌: opacity: 0.x;就可以了;所以你说的alpha是为了兼容IE的透明度语句。这里即你就发了一小段不好判断是做什么透明的应用,反正是正对IE的。
先学的本课程,然后看到了智能社11年的JS课程。这个框架部分相似的也是真的多。竟无言以对
课程须知
1.您至少已经具备JavaSript的知识。2.您已经具备一些开发经验。
老师告诉你能学到什么?
1.使用定时器实现简单动画。2.如何一步步封装库。2.培养编程的思想。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消