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

JS动画效果

vivian Web前端工程师
难度初级
时长 2小时 8分
学习人数
综合评分9.60
537人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.4 逻辑清晰
看了大家很多的评论,给正在挣扎的同学们一些小小的建议:看书为主,配合视频看为辅,如果看这个视频是你js学习的全部,我认为不太合理。
新手推荐这两本书:《jsDOM编程艺术》《js高级程序设计》两本书
少了每个obj的timer 不过颜色变换的速度不直观,看不出来

已采纳回答 / 权哲
if(boss.style.opacity==itarget)clearInterval(timer); 这块没能清除 计时器,boss.style.opacity 他算出的是浮点数就是0.3不可能等于itarget30。把他换成alpha 就好了。

最新回答 / kafu123
offsetwidth:是元素相对父元素的偏移宽度。等于border+padding+width,这样应该明白了吧。

最新回答 / 高手之路
第一行<script>标签去掉  注意h5 <script src=""></script>引入格式第16行在严格模式下是错误的,加上var第21行判断,如果是透明的话,写全了、

+ 我来回答 回答最高可+2积分
time=setInterval(function(){
if(c.offsetLeft==target){
clearInterval(time);
}else{
var speed=(target-c.offsetLeft)/10;
speed=speed&gt;0?Math.ceil(speed):Math.floor(speed);
c.style.left=c.offsetLeft+speed+&quot;px&quot;;
}
},50)

最新回答 / 慕少1874935
可能你清除定时器的位置不对,应该插入到startMove函数之前吧

最新回答 / 乐美
这个是move.js的代码 //调用JSON    startMove(obj,{attr1:itarget1,attr2:itarget2},fn)  //attr1是name itarget1是值     //封装函数 function startMove(obj,json,fn){ //fn是回调函数 var  flag = true; //  标志所有运动是否到达目标值  clearInterval(obj.timer); obj.timer=setInterval(function(){ ...

最新回答 / 慕少1874935
只是这里的速度单位不同而已啊

最赞回答 / joffyzou
<...code...>这里的外层change()可以传this,但是到了里层change()时,this就代表window对象了。可以改成div

已采纳回答 / lemonda
嗯经评测 在DW里运行在 FireFox,Chrome,IE8 都可以运行的。

已采纳回答 / 浪子丶
最开始没有把CSS样式初始化,加一段代码    *{margin:0;padding:0;}即可以完美的解决你这个问题

已采纳回答 / 慕之光
事实上对于javascript这样的弱类型语言,使用var和不使用var都可以定义一个变量,在函数内使用var定义的变量是一个局部变量,不使用var定义的变量是一个全局变量,而obj.timer = setInterval这种方式算不上定义,这里obj已经是一个对象了,obj.timer代表为这个对象创建一个属性,然后才能使用这个属性,我们可以为它创建很多属性,根据需要来。ps:大多时候我们想自定义一个对象,可以这样写:var myobj1 = Object();然后为你的对象添加属性,如myobj.nu...
课程须知
1.您至少已经具备JavaSript的知识。2.您已经具备一些开发经验。
老师告诉你能学到什么?
1.使用定时器实现简单动画。2.如何一步步封装库。2.培养编程的思想。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消