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 相关文章推荐
jquery.lazyload  实现图片延迟加载jquery插件
Feb 06 Javascript
javascript去掉前后空格的实例
Nov 07 Javascript
jquery增加时编辑jqGrid(实例代码)
Nov 08 Javascript
Javascript获取当前时间函数和时间操作小结
Oct 01 Javascript
jQuery树形下拉菜单特效代码分享
Aug 15 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
Dec 04 Javascript
JavaScript 继承详解(五)
Oct 11 Javascript
AngularJS模板加载用法详解
Nov 04 Javascript
js实现图片切换(动画版)
Dec 25 Javascript
超轻量级的js时间库miment使用解析
Aug 02 Javascript
重置Redux的状态数据的方法实现
Nov 18 Javascript
jquery+css3实现的经典弹出层效果示例
May 16 jQuery
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
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
浅谈Node Inspector 代理实现
2017/10/19 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
vue+elementUI实现简单日历功能
2020/09/24 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Python自定义线程类简单示例
2018/03/23 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
Python字符串大小写转换拼接删除空白
2019/09/19 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
面向对象编程OOP的优点
2013/01/22 面试题
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
代码中finally中的代码会不会执行
2012/02/06 面试题
2014年党员承诺书范文
2014/05/20 职场文书
广告学专业求职信
2014/06/19 职场文书
思想纪律作风整顿剖析材料
2014/10/11 职场文书
学生上课说话检讨书
2014/10/25 职场文书
离职报告格式
2014/11/04 职场文书
会计求职简历自我评价
2015/03/10 职场文书