动画不能正常执行为什么

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>缓冲运动</title>
<style type="text/css">
*{margin: 0;padding: 0;}
#box{width: 200px;height: 200px;background-color: red;position: relative;left: -200px;top: 0;}
#box span{width: 20px;height: 50px;position: absolute;top: 50px;left: 200px;background-color: blue;}
</style>
<script type="text/javascript">
window.onload=function(){
var obox = document.getElementById('box');
obox.onmouseover = function(){
startmove(0);
}
obox.onmouseout = function(){
startmove(-200);
} 
}

var timer = null;
function startmove(iTarget){
var obox = document.getElementById('box');
function go() {
var speed = (iTarget-obox.offsetLeft)/20;
speed = speed > 0?Math.ceil(speed):Math.floor(speed);
if ( (obox.offsetLeft < iTarget) || (obox.offsetLeft > iTarget)) {
obox.style.left = obox.offsetLeft + speed+'px';
}
times = setTimeout(go, 30);
}
go();
}
</script>
</head>
<body>
<div id="box"><span>分享</span></div>
</body>
</html>

if里的判

啊啊啊啊123
浏览 1483回答 2
2回答

OlderSkee

代码有一处错误 ,两个问题代码第三十一行,timer  不是times然后在代码的25行后面加一句 clearTimeout(timer),以上两个改了之后就可以往回走了。不过最后你的代码18行传入的值不对,不能完全的隐藏掉。看了下。具体原因是speed取值的问题,把26行的20改成5 ,就可以完全正确的执行了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript