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

JS动画效果

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

已采纳回答 / 慕男婶
区别是:obj.style.width 是获取的content区的宽度,并且只能获取行内样式;而offsetWidth获取的是盒子宽度。例如:<div class="d"></div>.d{    width:200px;    height:200px;    border:10px #ccc solid;    padding:10px;    background:red;}d.offsetWidth = 200(content区宽度) + 10X2(两边的padding) ...

已采纳回答 / 紫焰123
<...code...>注意第二个startMove。你写错了,写成了startMove1()

已采纳回答 / 攻城没有狮
作用域不一样,timer放startMove()里面,就只能在里面调用

已采纳回答 / echo_kinchao
那就可能是引用错误了

已采纳回答 / 心悦君夕
a标签不是块级元素p标签是块级元素是行级元素不能包括块级元素的

已采纳回答 / Y_du
是因为你定时器同名了,把第一个定时器的名称换成与第二个不一样就好了。<...code...>

已采纳回答 / Y_du
 对象不一样,box_1是一个具体的对象。而this这是是win本身。

已采纳回答 / qq_怕什么山高水远_0
var oDiv = document.getElementById("div1"); var speed = (iTarget-oDiv.offsetLeft)/20; speed = speed>0?Math.ceil(speed):Math.floor(speed);把上面这一段代码写在定时器里面,每执行一次定时器speed的值就会改变一次,写在定时器外面就不会变化了

已采纳回答 / Gooooo0
if (oDiv.offsetLeft>iTarget) {speed==-10;}else{speed==10;}自动空行了  ,把这两行代码的==换成 =就行了

已采纳回答 / 伊兮尘昔
不是,透明度可不是颜色的问题,你可以试试将某个元素放在该元素下面,你调整颜色看看能到下面的元素不?而透明度可以看到

已采纳回答 / 纪奕滨
把if(alpha>30){}改成if(alpha>iTarget){}起初你的alpha是30,之后自增10,alpha是40,过了30毫秒再调用一次函数,此时alpha〉30,speed为-10,之后alpha自减10,又变成30,所以总是循环再0.3和0.4之间
课程须知
1.您至少已经具备JavaSript的知识。2.您已经具备一些开发经验。
老师告诉你能学到什么?
1.使用定时器实现简单动画。2.如何一步步封装库。2.培养编程的思想。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消