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 相关文章推荐
详谈LABJS按需动态加载js文件
May 07 Javascript
简单掌握JavaScript中const声明常量与变量的用法
May 21 Javascript
JavaScript中push(),join() 函数 实例详解
Sep 06 Javascript
再谈javascript注入 黑客必备!
Sep 14 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
Sep 15 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
Dec 08 Javascript
JS中对数组元素进行增删改移的方法总结
Dec 15 Javascript
JavaScript生成简单等差数列
Nov 28 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
Jun 29 Javascript
PM2自动部署代码步骤流程总结
Dec 10 Javascript
vue大型项目之分模块运行/打包的实现
Sep 21 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
Nov 03 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&amp;mysql(六)
2006/10/09 PHP
笑谈配置,使用Smarty技术
2007/01/04 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
Js与Jq 获取页面元素值的方法和差异对比
2015/04/30 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
javascript 数据存储的常用函数总结
2017/06/01 Javascript
vuejs 制作背景淡入淡出切换动画的实例
2018/09/01 Javascript
BootstrapValidator实现表单验证功能
2019/11/08 Javascript
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
vue实现表格合并功能
2020/12/01 Vue.js
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
python学习之hook钩子的原理和使用
2018/10/25 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
python浪漫表白源码
2019/04/05 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
新年福利来一波之Python轻松集齐五福(demo)
2020/01/20 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
Python基于字典实现switch case函数调用
2020/07/22 Python
python ssh 执行shell命令的示例
2020/09/29 Python
瑞典首都斯德哥尔摩的多元奢侈时尚品牌:Acne Studios
2017/07/09 全球购物
美德好少年事迹材料
2014/01/19 职场文书
企业法人授权委托书
2014/04/03 职场文书
市级青年文明号申报材料
2014/05/26 职场文书
新党章的学习心得体会
2014/11/07 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
只用Python就可以制作的简单词云
2021/06/07 Python
go goth封装第三方认证库示例详解
2022/08/14 Golang