本文介绍如何使用原生JavaScript实现元素的匀速运动效果。通过定时器设置固定步长改变元素位置,虽然实际开发中较少单独使用,但有助于理解运动框架的基础逻辑。
原生JS匀速运动实现
这里展示一个基于原生JavaScript实现的匀速运动案例,具体视觉效果如下:

需要说明的是,此类匀速运动在实际项目应用中相对少见,开发者更常采用弹性运动或缓冲运动方案。以下是完整的代码实现,欢迎参考、复制及提出意见。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>原生JS实现各种运动之匀速运动</title>
<style>
#div1 {
width: 100px;
height: 100px;
position: absolute;
background: red;
left: 0;
top: 50px;
}
span {
width: 1px;
height: 300px;
background: black;
position: absolute;
left: 300px;
top: 0;
}
;
</style>
<script type="text/javascript">
var timer = null;
function startMove(iTarget) {
var oDiv = document.getElementById('div1');
clearInterval(timer);
timer = setInterval(function () {
var iSpeed = 0;
if (oDiv.offsetLeft < iTarget) {
iSpeed = 7;
} else {
iSpeed = -7;
}
//是否到达终点
if (Math.abs(oDiv.offsetLeft - iTarget) < 7) {
//到达终点
clearInterval(timer);
oDiv.style.left = iTarget + 'px';
} else {
//到达之前
oDiv.style.left = oDiv.offsetLeft + iSpeed + 'px';
}
}, 30);
}
</script>
</head>
<body>
<input type="button" value="开始运动" onclick="startMove(300)" />
<div id="div1"></div>
<span></span>
</body>
</html>
本文内容到此结束,希望能为您的学习提供一定帮助,同时也感谢对本站的支持。