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

4-3问题

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>无标题文档</title>

<style type="text/css">

*{

margin:0;

padding:0

}

div{

width:200px;

height:100px;

background:#939;

margin-bottom:15px;

border:#000 solid 2px;

filter:alpha(opacity:30);

opacity:0.5;}

</style>

<script type="text/javascript">

window.onload=function(){

var box=document.getElementsByTagName("div");

for(var i=0;i<box.length;i++)

{

  box[i].timer=null;

box[i].onmouseover=function(){

change(this,400);

}

box[i].onmouseout=function(){

change(this,200);}

function change(obj,wid){

clearInterval(obj.timer);

var speed,a=parseInt(getStyle(obj,'width'));

obj.timer=setInterval(function(){

speed=(wid-a)/10;    

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

/*if(obj.offsetWidth<wid)

speed=10;

else

speed=-10;*/

if(a==wid)

clearInterval(obj.timer);

else 

obj.style.width=a+speed+'px';

},30)

}

function getStyle(obj,attr){

if(obj.style.currentStyle)

return obj.currentStyle[attr];

else

return getComputedStyle(obj,false)[attr];

}

}


}

</script>

</head>


<body>

<div id="box1"></div>

    <div id="box2"></div>

    <div id="box3"></div>

</body>

</html>

感觉代码没什么错误,怎么效果是那样的,好像是定时器失效了


正在回答

1 回答

变量定义位置错了,应该在计时器里边定义

obj.timer=setInterval(function(){
   var speed,a=parseInt(getStyle(obj,'width'));
   speed=(wid-a)/10;
   speed=speed>0?Math.ceil(speed):Math.floor(speed);
   if(a==wid)
       clearInterval(obj.timer);
   else
       obj.style.width=a+speed+'px';
},30)

建议你规范一下代码格式。。。学会用浏览器调试。。。

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

Dream0703 提问者

非常感谢!查看javascript控制台吗?谢谢
2016-05-13 回复 有任何疑惑可以回复我~
#2

Dream0703 提问者 回复 泠泉石上

thank you 前端很累吗
2016-05-15 回复 有任何疑惑可以回复我~
#3

泠泉石上 回复 Dream0703 提问者

喜欢就不累啊。。。还有,前端有点麻烦,因为不像后台语言那么严谨(额,可能说的不恰当,意思就是有时候代码明明写错了,然而浏览器却发现不了),后台错了就是错了,所以调试起来很麻烦。我也是初学者,有什么问题大家一起解决吧
2016-05-15 回复 有任何疑惑可以回复我~
#4

泠泉石上 回复 Dream0703 提问者

喜欢就不累啊,不过前端有一点点小问题就是调试很麻烦,慢慢你就能体会到了。我也是小白,以后有啥问题,经验啥的一起交流吧
2016-05-15 回复 有任何疑惑可以回复我~
查看2条回复

举报

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

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

进入课程
意见反馈 帮助中心 APP下载
官方微信