JavaScript中的匀速运动和变速(缓冲)运动详细介绍


Posted in Javascript onNovember 11, 2012

一个div的运动其实就是它与浏览器边框的距离在变动。如果他变化的速率一定,那就是匀速运动;如果变化的速率不一定,那么就是变速运动。当,变化率与聚离浏览器边框的距离成比例的话,那么就可以说是div在做缓冲运动。
其实,很简单,就是用一个定时器(timer),每隔一段时间来改变div聚浏览器边框的距离。

比如匀速运动:

进入定时器:(每隔30ms做)
if(是否到达终点)
{ 停止定时器}
else do{ 改变距离}

改变距离的方法决定是匀速还是变速(缓冲)运动。

匀速的比如:

var timer=null; 
function startMove() 
{ var oDiv=document.getElementById('div1'); 
clearInterval(timer); 
timer=setInterval(function () { 
var iSpeed=1; 
if(oDiv.offsetLeft>=300) 
{ 
clearInterval(timer); 
} 
else 
{ 
oDiv.style.left=oDiv.offsetLeft+iSpeed+'px'; 
} 
},30); 
};

缓冲运动:

var timer=null; 
function startMove() 
{ 
var iTarget=300; 
var oDiv=document.getElementById('div1'); 
clearInterval(timer); 
timer=setInterval(function () { 
var iSpeed=(iTarget-oDiv.offsetLeft)/8; 
iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed); 
iSpeed=Math.ceil(iSpeed); 
if(oDiv.offsetLeft==iTarget) 
{ 
clearInterval(timer); 
} 
else 
{ 
oDiv.style.left=oDiv.offsetLeft+iSpeed+'px'; 
} 
document.title=oDiv.style.left+' '+iSpeed; 
},30); 
};

这样,一个运动框架就写好了!原理很简单,不过还有待完善。慢慢来吧!
Javascript 相关文章推荐
JavaScript 学习笔记一些小技巧
Mar 28 Javascript
基于Jquery的仿照flash放大图片效果代码
Mar 16 Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
Oct 11 Javascript
js获取客户端操作系统类型的方法【测试可用】
May 27 Javascript
js动态获取子复选项并设计全选及提交的实现方法
Jun 24 Javascript
jQuery实现的简单拖拽功能示例
Sep 13 Javascript
jquery中用函数来设置css样式
Dec 22 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
Apr 25 Javascript
JavaScript实现计算多边形质心的方法示例
Jan 31 Javascript
在Vue组件中获取全局的点击事件方法
Sep 06 Javascript
angularJS1 url中携带参数的获取方法
Oct 09 Javascript
js实现扫雷源代码
Nov 27 Javascript
jQuery语法总结和注意事项小结
Nov 11 #Javascript
javascript继承之为什么要继承
Nov 10 #Javascript
jquery表单验证使用插件formValidator
Nov 10 #Javascript
js 判断checkbox是否选中的操作方法
Nov 09 #Javascript
JS的replace方法详细介绍
Nov 09 #Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
Nov 08 #Javascript
javascript模拟select,jselect的方法实现
Nov 08 #Javascript
You might like
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
2013/06/24 PHP
使用PHP函数scandir排除特定目录
2014/06/12 PHP
php基于PDO连接MSSQL示例DEMO
2016/07/13 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
微信小程序购物商城系统开发系列-工具篇的介绍
2016/11/21 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
解决ie img标签内存泄漏的问题
2017/10/13 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
详解如何在python中读写和存储matlab的数据文件(*.mat)
2018/02/24 Python
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
详解python实现识别手写MNIST数字集的程序
2018/08/03 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
Django使用Celery加redis执行异步任务的实例内容
2020/02/20 Python
一文读懂Python 枚举
2020/08/25 Python
在线服装零售商:SheIn
2016/07/22 全球购物
施华洛世奇澳大利亚官网:SWAROVSKI澳大利亚
2017/01/06 全球购物
美国CVS药店官网:CVS Pharmacy
2018/07/26 全球购物
化学学院毕业生自荐信范文
2013/12/17 职场文书
手机促销活动方案
2014/02/05 职场文书
施工安全标语
2014/06/07 职场文书
教师党员个人剖析材料
2014/09/29 职场文书
2014年酒店年度工作总结
2014/12/10 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS