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程序之undefined篇(中)
Nov 23 Javascript
web前端开发也需要日志
Dec 09 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
Nov 17 Javascript
深入理解jQuery layui分页控件的使用
Aug 17 Javascript
AngularJS  $modal弹出框实例代码
Aug 24 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
Sep 08 Javascript
详解如何使用webpack在vue项目中写jsx语法
Nov 08 Javascript
vue-cli中的babel配置文件.babelrc实例详解
Feb 22 Javascript
解析vue data不可以使用箭头函数问题
Jul 03 Javascript
vue 点击按钮实现动态挂载子组件的方法
Sep 07 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
Aug 21 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
Apr 09 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中file_get_contents与curl性能比较分析
2014/11/08 PHP
php实现改变图片直接打开为下载的方法
2015/04/14 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
js中document.referrer实现移动端返回上一页
2017/02/22 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
2018/05/21 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
[46:10]2014 DOTA2国际邀请赛中国区预选赛 CnB VS HGT
2014/05/21 DOTA
对Python多线程读写文件加锁的实例详解
2019/01/14 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
2019/08/27 Python
flask 实现token机制的示例代码
2019/11/07 Python
Python的形参和实参使用方式
2019/12/24 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
Numpy 多维数据数组的实现
2020/06/18 Python
Python监听剪切板实现方法代码实例
2020/11/11 Python
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
瑞典时尚服装购物网站:Miinto.se
2017/10/30 全球购物
写给女生的道歉信
2014/01/08 职场文书
人力资源主管岗位职责
2014/01/29 职场文书
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
司仪主持词两篇
2014/03/22 职场文书
奥巴马上海演讲稿
2014/09/10 职场文书
2014年教师工作总结
2014/11/10 职场文书
调解书格式范本
2015/05/20 职场文书
2015年思想品德教学工作总结
2015/07/22 职场文书
Java9新特性对HTTP2协议支持与非阻塞HTTP API
2022/03/16 Java/Android
MySQL Server层四个日志的实现
2022/03/31 MySQL