JavaScript实现元素加速与减速运动动画

作者:竹影

时间:2026-10-28

浏览:629

本文介绍如何利用JavaScript的setInterval函数模拟物体的加速与减速运动效果。通过动态改变元素的位置属性并逐步调整速度值,实现点击按钮后元素向右加速或先减速后反向加速的动画效果。

文章目录

JavaScript运动模拟原理

加速运动指物体速度随时间逐渐增加,而减速运动则指速度随时间逐渐降低。在JavaScript中,可以通过setInterval或setTimeout定时器动态修改元素相对于参照物的位置(如style.left或style.marginLeft),并在每次执行时增加速度变量,从而模拟出加速运动的效果;减速运动的原理与此类似,只是速度变量的变化方向相反。

以下是两个具体的实现示例。

加速运动实现代码

加速运动示例

相关HTML与JavaScript代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Javascript加速运动</title>
<style type="text/css">
* {margin: 0; padding: 0;}
.div1 {width: 100px; height: 100px; background: #f60 url(qiuweiguan.gif) no-repeat center center;}
</style>
<script type="text/javascript">
var $$ = function (id) {
return document.getElementById(id);
}
window.onload = function () {
var oBtn = $$("btn1");
var oDiv = $$("div1");
var timer = null;
var speed = 0;
oBtn.onclick = function () {
clearInterval(timer);
timer = setInterval(function () {
speed ++;
oDiv.style.marginLeft = oDiv.offsetLeft + speed + "px";
}, 30);
}
}
</script>
</head>
<body id = "body">
<button id="btn1" class="btn1">GO</button>
<div id="div1" class="div1"></div>
</body>
</html>

注意:在此示例中,点击GO按钮后,div元素将持续向右进行加速运动。

减速运动实现代码

减速运动示例

相关HTML与JavaScript代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Javascript减速运动</title>
<style type="text/css">
* {margin: 0; padding: 0;}
.div1 {width: 100px; height: 100px; background: #f60 url(qiuweiguan.gif) no-repeat center center;}
</style>
<script type="text/javascript">
var $$ = function (id) {
return document.getElementById(id);
}
window.onload = function () {
var oBtn = $$("btn1");
var oDiv = $$("div1");
var timer = null;
var speed = 30;
oBtn.onclick = function () {
clearInterval(timer);
timer = setInterval(function () {
speed — ;
oDiv.style.marginLeft = oDiv.offsetLeft + speed + "px";
}, 30);
}
}
</script>
</head>
<body id = "body">
<button id="btn1" class="btn1">GO</button>
<div id="div1" class="div1"></div>
</body>
</html>

注意:在此示例中,点击GO按钮后,div元素首先向右进行减速运动;当速度减为零后,速度变为负值,元素随即向左进行加速运动。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章