JS实现匀速运动的简单例子
本节内容:
S实现匀速运动
思路:
利用setInerval()计时器,进行运动。
关键:在最后停止的时候给它一个填充缝隙的判断。
例子:
<title>JS实现匀速运动-www.jquerycn.cn</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) { // www.jquerycn.cn
// 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的位置" onclick="move(500);" />
<input type="button" id="btn2" value="到200的位置" onclick="move(200);" />
<div id="div1">
</div>
<div id="div200">200
</div>
<div id="div500">500
</div>
</body>
相关阅读:
Javascript setInterval的二种调用方法示例
JavaScript中setInterval的用法详解
javascript setTimeout()超时调用与setInterval()间隔调用的例子
setInterval()和setTimeout()参考代码学习
js定时调用函数(SetInterval与setTimeout)的区别分析
您可能感兴趣的文章:
JS匀速运动的简单示例代码
JS实现匀速运动的简单例子
HTML5 canvas实现中奖转盘的实例代码
jquery中的animate函数
css3 html5实现太阳系行星公转动画实例
分享利用canvas实现知乎登录页的实例代码
Python3爬虫进阶:识别极验滑动验证码
Html5移动端获奖无缝滚动动画实现
利用SurfaceView实现下雨与下雪动画的效果
JS悬浮浮动的简单例子