问答详情
源自:2-1 JS速度动画

为什么我的timer设置在function move()之内方块就会来来回回的,但是设置成全局变量就没事了呢?下面是我的代码

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Document</title>

<style type="text/css">

*{margin: 0;

padding: 0}

#div{

position:relative;

left: -200px;

width: 200px;

height: 100px;

margin:10px 0;

background: red;

}

#div span{

width: 20px;

height: 50px;

background:blue;

position: absolute;

left: 200px;

top:75px;

}

</style>

<script>

window.onload=function(){

var div=document.getElementById('div');

div.onmouseover=function(){

move(0);

}

div.onmouseout=function(){

move(-200);

}

}

var timer=null;

function move(iTarget){


clearInterval(timer);

var div=document.getElementById('div');

timer=setInterval(function(){

if(div.offsetLeft==iTarget){

clearInterval(timer);

}else{

if(div.offsetLeft<iTarget){

div.style.left=div.offsetLeft+50+'px';

}else if(div.offsetLeft>iTarget){

div.style.left=div.offsetLeft-50+'px';

}


}

},100);

}

</script>

</head>

<body>

<div id="div">

<span id="span">分享</span>

</div>

</body>

</html>


提问者:qq_苏慕遮_24019744 2016-10-07 10:43

个回答

  • rainy_li3676598
    2016-11-15 11:14:17

    你现在理解 没有? 我也在想这个问题。 我们真是用心在学习啊,哈哈

  • 慕村4192610
    2016-10-07 11:36:24

    应该是变量作用域问题吧