JS实现匀速运动的代码实例
JS实现匀速运动的代码实例
发布时间:2016-12-30 来源:查字典编辑
摘要:效果:思路:利用setInerval()计时器,进行运动。然后关键的一点是在最后停止的时候给它一个填充缝隙的判断。代码:复制代码代码如下:#...

效果:

JS实现匀速运动的代码实例1

思路:

利用setInerval()计时器,进行运动。然后关键的一点是在最后停止的时候给它一个填充缝隙的判断。

代码:

复制代码 代码如下:

<head runat="server">

<title></title>

<style type="text/css">

#div1

{

width: 100px;

height: 100px;

background: #0000FF;

position: absolute;

left: 800px;

top: 100px;

}

#div200

{

width: 1px;

height: 400px;

background: #FF0000;

position: absolute;

left: 200px;

}

#div500

{

width: 1px;

height: 400px;

background: #FF0000;

position: absolute;

left: 500px;

}

</style>

<script type="text/javascript">

function move(end) {

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

var timer = null;

timer = setInterval(function () {

var speed = (end - oDiv.offsetLeft) / 5; //根据终点和offsetLeft取出运动的速度

speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); //进位取整,小数位变为整位,

// if (oDiv.offsetLeft <= end) {

// clearInterval(timer);

// }

// else {

// oDiv.style.left = oDiv.offsetLeft + speed + 'px';

// }

if (Math.abs(end - oDiv.offsetLeft) <= speed) { //由于在停止的时候最后会出现小的缝隙,或者说没有完全的到达指定地点,所以要小于它的速度

clearInterval(timer); //当距离小于速度时,让计时器停止

oDiv.style.left = end + 'px'; //在停止后填充缝隙。

}

else {

oDiv.style.left = oDiv.offsetLeft + speed + 'px'; //移动DIV

}

}, 30)

}

</script>

</head>

<body>

<input type="button" id="btn1" value="到500的位置" />

<input type="button" id="btn2" value="到200的位置" />

<div id="div1">

</div>

<div id="div200">200

</div>

<div id="div500">500

</div>

</body>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类