Javascript模拟加速运动与减速运动代码分享


Posted in Javascript onDecember 11, 2014

加速运动,即一个物体运动时速度越来越快;减速运动,即一个物体运动时速度越来越慢。现在用Javascript来模拟这两个效果,原理就是用setInterval或setTimeout动态改变一个元素与另外一个元素的距离,如xxx.style.left或xxx.style.marginLeft,然后每次运动后都使速度增加,这样加速运动的效果就出现了,减速运动是同样的道理。

下面是两个示例:

加速运动

<!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块会一直向右做加速运动

减速运动

<!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块会一直向右做减速运动,直到速度减为零后,速度变为负值,再向左做加速运动

Javascript 相关文章推荐
JavaScript 加号(+)运算符号
Dec 06 Javascript
使用Plupload实现直接上传附件至七牛云存储
Dec 26 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
Dec 04 Javascript
socket.io学习教程之深入学习篇(三)
Apr 29 Javascript
Vue动态组件实例解析
Aug 20 Javascript
JavaScript中click和onclick本质区别与用法分析
Jun 07 Javascript
手淘flexible.js框架使用和源代码讲解小结
Oct 15 Javascript
微信小程序tabBar设置实例解析
Nov 14 Javascript
微信小程序自定义头部导航栏(组件化)
Nov 15 Javascript
vue项目中极验验证的使用代码示例
Dec 03 Javascript
Vue Object 的变化侦测实现代码
Apr 15 Javascript
基于JS实现计算24点算法代码实例解析
Jul 23 Javascript
javascript中HTMLDOM操作详解
Dec 11 #Javascript
javascript实现修改微信分享的标题内容等
Dec 11 #Javascript
javascript表单验证和Window详解
Dec 11 #Javascript
使用百度地图api实现根据地址查询经纬度
Dec 11 #Javascript
javascript实现倒计时N秒后网页自动跳转代码
Dec 11 #Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
Dec 10 #Javascript
node.js中的buffer.slice方法使用说明
Dec 10 #Javascript
You might like
PHP个人网站架设连环讲(一)
2006/10/09 PHP
shopex主机报错误请求解决方案(No such file or directory)
2011/12/27 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
thinkphp3.x中session方法的用法分析
2016/05/20 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
文字幻灯片
2006/06/26 Javascript
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
js函数与php函数的区别实例浅析
2015/01/12 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
Bootstrap实现翻页效果
2017/11/27 Javascript
分析JS单线程异步io回调的特性
2017/12/01 Javascript
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
详解Python中的array数组模块相关使用
2016/07/05 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
python实现自动登录后台管理系统
2018/10/18 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
python实现字典嵌套列表取值
2019/12/16 Python
tensorflow 环境变量设置方式
2020/02/06 Python
Python callable内置函数原理解析
2020/03/05 Python
材料加工硕士生求职信
2013/10/10 职场文书
公司离职证明范本
2014/01/13 职场文书
公司证明怎么写
2014/09/22 职场文书
出纳工作检讨书
2014/10/18 职场文书
2014全年工作总结
2014/11/27 职场文书
mybatis调用sqlserver存储过程返回结果集的方法
2021/05/08 SQL Server
使用Redis实现实时排行榜功能
2021/07/02 Redis
MongoDB支持的索引类型
2022/04/11 MongoDB