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

JS动画效果

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

已采纳回答 / Betsey
第44行的attr没有定义,应该把attr换成'width',因为attr是在getStyle()里面的局部变量,离开了getStyle()就会销毁

已采纳回答 / 慕容6759333
比如移动到的目标值是300px,通过300减去当前的坐标0,再除以20,结果是15,div以15的速度向右移动,这是第一次定时器执行的结果。30毫秒后再执行一次,目标移动到了15,通过300减去当前坐标15结果是285,285除以20结果的14.25,这样一次次运算下来,速度越来越小,比如速度是15、14.25、12.73、7.2。。。。这样的。由于数值设置的原因,div移动到一定px后,进行相减再除20的运算后会出现小数,比如0.75,比如这时div移动到了290,程序里写到div的left=oDiv....

已采纳回答 / hiccup_dai
<script type="text/javascript"> $(function(){ $('#move a').mouseenter(function(){ $(this).find('i').animate({top:"-25px",opacity:"0"},300,function(){ $(this).css({top:"30px"}); $(this).animate({top:"20px",opacity:"1"},200) }) ...

已采纳回答 / haoyuanlin
可能是封装的函数里面高度达到了然后使得动画停止了,看看startMove里面判断动画停止的时候是否正确

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

已采纳回答 / haoyuanlin
这个可能是高度达到的时间比较短,然后在封装的startMove中判断动画停止的时候认为目标值已经达到,所以执行了clearInterval(time);所以width达不到预期

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

最赞回答 / Lionis
<...code...><...code...>

已采纳回答 / qq_ChinraunXu_0
(1)var oDiv=document.getElementById("div1");把这句放在startMove函数里面;(2) oDiv.opacity=alpha/100;这一句写少了style

已采纳回答 / qq_Lollipop_1
getElementsByTagName得到的就是一个数组,可以直接遍历使用吖,如果div很多,你最好通过id或者class来获取

已采纳回答 / qq_发条橙子_0
这个是基础问题  var a=1,b="2",c=3;a+b+c; //“123”number类型和string类型做+运算会把number变成string。

已采纳回答 / dyr
currentStyle的结果在)到1之间,所以cur要x100;使用50是为了和width和height保持一致。来计算speed

已采纳回答 / Perona
很多软件都可以的呀,就连记事本都可以编写。但是文件要用浏览器打开,浏览器才有javascript的解析器。
课程须知
1.您至少已经具备JavaSript的知识。2.您已经具备一些开发经验。
老师告诉你能学到什么?
1.使用定时器实现简单动画。2.如何一步步封装库。2.培养编程的思想。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消