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

各位大神们,帮忙看看

window.onload=function(){

var Li1=document.getElementById('li1');

var Li2=document.getElementById('li2');

var Li1.timer=null;

var Li2.timer=null;

Li1.onmouseover=function(){

startMove(this,'height',400)

}

Li1.onmouseout=function(){

startMove(this,'height',100)

}

Li2.onmouseover=function(){

startMove(this,'width',400)

}

Li2.onmouseout=function(){

startMove(this,'width',200)

}

}

function getStyle(obj,attr)

{

if(obj.currentStyle){return obj.currentStyle[attr];}


else{return getComputedStyle(obj,false)[attr];}

}


function startMove(obj,attr,iTarget){

var icur=parseInt(getStyle(obj,attr));

clearInterval(obj.timer);

obj.timer=setInterval(function(){

var speed=(iTarget-icur)/8;

speed=speed>0?Math.ceil(speed):Math.floor(speed);

if(icur==iTarget){clearInterval(obj.timer);}

else{obj.style[attr]= icur + speed +'px';}

},30);

}

第三行第四行定义初始化了两个timer为啥就不能动了,还有缓冲效果怎么出不来,speed/8的时候效果不对,去掉除以8不能缓冲了,怎么回事呀

正在回答

1 回答

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

0 回复 有任何疑惑可以回复我~
#1

financeC 提问者

喔,谢谢,那第二个问题呢,缓冲怎么不行
2016-08-18 回复 有任何疑惑可以回复我~
#2

不如怀念o 回复 financeC 提问者

建议你修改一下css中的width或者height,以及定时器的ms,然后打开开发者工具看具体的DOM文档,看该节点上的数据是怎么变化的。
2016-08-18 回复 有任何疑惑可以回复我~
#3

financeC 提问者

非常感谢!
2016-08-21 回复 有任何疑惑可以回复我~
#4

湛瞳

亲,我想知道具体哪些是错的,谢谢
2016-08-26 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消
JS动画效果
  • 参与学习       113925    人
  • 解答问题       1443    个

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

进入课程

各位大神们,帮忙看看

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信