JavaScript实现元素加速与减速运动动画
作者:竹影时间:2026-10-28 17:32:04浏览:630
本文介绍如何利用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元素首先向右进行减速运动;当速度减为零后,速度变为负值,元素随即向左进行加速运动。
作者最新文章
网页开发三者分工:HTML结构、CSS样式与JavaScript交互怎么协作
2026-11-05 12:51:22
JS解析URL参数时怎么处理中文乱码和特殊字符
2026-11-05 12:47:23
js-cookie 存储 JSON 对象:自动序列化与反序列化技巧
2026-11-05 12:36:26
marked.js 快速上手:安装与基础 Markdown 转 HTML 示例
2026-11-05 09:32:53
Phaser.js 与 PixiJS、Cocos Creator 的技术选型对比
2026-11-05 08:36:30
