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 相关文章推荐
学习jquery必备 api中英文对照的chm手册 下载
May 03 Javascript
jquery 图片预加载 自动等比例缩放插件
Dec 25 Javascript
jquery 日期分离成年月日的代码
May 14 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
Jan 25 Javascript
基于jQuery实现复选框是否选中进行答题提示
Dec 10 Javascript
jQuery多级联动下拉插件chained用法示例
Aug 20 Javascript
微信小程序 MINA文件结构
Oct 17 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
Mar 30 Javascript
微信小程序封装http访问网络库实例代码
May 24 Javascript
利用百度地图API获取当前位置信息的实例
Nov 06 Javascript
Vue中的无限加载vue-infinite-loading的方法
Apr 08 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
Sep 14 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+AJAX实现无刷新注册(带用户名实时检测)
2007/01/02 PHP
php验证session无效的解决方法
2014/11/04 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
关于JS中的闭包浅谈
2013/08/23 Javascript
JavaScript对IE操作的经典代码(推荐)
2014/03/10 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
js正则表达式验证表单【完整版】
2017/03/06 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
JScript实现表格的简单操作
2017/08/15 Javascript
对vue下点击事件传参和不传参的区别详解
2018/09/15 Javascript
JavaScript Canvas编写炫彩的网页时钟
2019/10/16 Javascript
[57:50]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第二局
2016/03/05 DOTA
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
python发送邮件功能实现代码
2016/07/15 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
Python3.7 pyodbc完美配置访问access数据库
2019/10/03 Python
Python Django2.0集成Celery4.1教程
2019/11/19 Python
python小白切忌乱用表达式
2020/05/29 Python
为什么是 Python -m
2020/06/19 Python
flask项目集成swagger的方法
2020/12/09 Python
Python实现石头剪刀布游戏
2021/01/20 Python
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
应用服务器有那些
2012/01/19 面试题
物流仓储实习自我鉴定
2013/09/25 职场文书
给市场的环保建议书
2014/05/14 职场文书
企业文化演讲稿
2014/05/20 职场文书
2014年护士个人工作总结
2014/11/11 职场文书
电信营业员岗位职责
2015/04/14 职场文书
郭明义观后感
2015/06/08 职场文书
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python
MySQL中的全表扫描和索引树扫描
2022/05/15 MySQL