猿问

为什么 var timer=null 放别的地方就不行了 动画就抖动

<head>

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

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

 <style type="text/css">

body,div,span{

    margin: 0;

    padding: 0;

}

 

#div1{

 

    width: 200px;

 

    height: 200px;

 

    background: red;

 

    position: relative;

 

    left: -200px;

 

    top: 0;

 

}

 

#div1 span {

 

    width: 20px;

 

    height: 50px;

 

    background: blue;

 

    position: absolute;

 

    left: 200px;

 

    top: 75px;

 

}

</style>

<script>


var timer=null;


function smove(taget){

clearInterval(timer);

var ddd=document.getElementById('div1');

timer=setInterval(function(){

if(ddd.offsetLeft>taget)

  var speed=-10;

  else

  var speed=10;

if(ddd.offsetLeft==taget)

clearInterval(timer)

else{ddd.style.left=ddd.offsetLeft+speed+'px'}},30)

}


</script>

 


</head>


<body>

<div id='div1'>

     <span>分享</span> <!-- 点分享时div1有效,事件冒泡 -->

</div>

</body>

<script>

window.onload=function(){

var ddd=document.getElementById('div1');

ddd.onmouseover=function(){

smove(0);

}

ddd.onmouseout=function(){

smove(-200);

}

}

</script>

</html>


慕桂英2593124
浏览 1388回答 3
3回答

西兰花伟大炮

放在函数里面是不行的,确实会抖动,鼠标移入移出,每次都会调用函数,创建变量,并赋值null,肯定与计时器有冲突,毕竟定义在全局只是初始化一下这个变量,以后都靠定时器来控制

我爱吃牛排

放别的地方就不行了 你想放在哪啊 把抖的代码发上来
随时随地看视频慕课网APP
我要回答