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

为什么我的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>


正在回答

2 回答

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

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

qq_苏慕遮_24019744 提问者

应该是定义在里面的话,当mouseover事件的时候增加了许多定时器,可能是这样子
2016-11-15 回复 有任何疑惑可以回复我~

应该是变量作用域问题吧

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

举报

0/150
提交
取消

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

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