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

代码如下,其中不会遇到等于目标值,导致动画不会停止。

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>JS速度动画</title>

<style type="text/css">

*{

padding: 0;

margin: 0;

}

#box{

width: 200px;

height: 200px;

background: red;

position: relative;

left: -200px;

top: 0;

}

#share{

width: 20px;

height: 50px;

background: blue;

position: absolute;

top: 75px;

left: 200px;

color: #fff;

}

</style>

<script type="text/javascript">

var timer = null;

window.onload = function(){

var oBox = document.getElementById('box');

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

oBox.onmouseover = function(){

startMove(0);

}

oBox.onmouseout = function(){

startMove(-200);

}

}

function startMove(iTarget){

clearInterval(timer);

var oBox = document.getElementById('box');

var speed = (iTarget - oBox.offsetLeft)/30;

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

timer = setInterval(function(){

if (oBox.offsetLeft==iTarget) {

clearInterval(timer);

}else{

oBox.style.left = oBox.offsetLeft+speed+'px';

}

},30)

}

</script>

</head>

<body>

<div id="box"><span id="share">分享</span></div>

</body>

</html>


正在回答

1 回答

搞了半天    我还在纳闷怎么不行。var speed = (iTarget - oBox.offsetLeft)/30;
speed = speed>0?Math.ceil(speed):Math.floor(speed);

这两行  要写在setinterval这个函数里面


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

饮无涯 提问者

什么意思,你说你那边的错误吗?
2017-03-13 回复 有任何疑惑可以回复我~
#2

慕粉4382624 回复 饮无涯 提问者

你把我说的那两句放到定时器里面就可以了
2017-03-17 回复 有任何疑惑可以回复我~
#3

饮无涯 提问者

非常感谢!
2017-03-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

代码如下,其中不会遇到等于目标值,导致动画不会停止。

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