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 相关文章推荐
JS中prototype关键字的功能介绍及使用示例
Jul 21 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
Nov 30 Javascript
javascript向后台传送相同属性的参数即数组参数
Feb 17 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
Feb 26 Javascript
jQuery网页选项卡插件rTabs用法实例分析
Aug 26 Javascript
使用JavaScript实现ajax的实例代码
May 11 Javascript
RequireJS多页面应用实例分析
Jun 29 Javascript
Vue.js第四天学习笔记
Dec 02 Javascript
bootstrap modal+gridview实现弹出框效果
Aug 15 Javascript
浅谈webpack性能榨汁机(打包速度优化)
Jan 09 Javascript
你或许不知道的一些npm实用技巧
Jul 04 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
Feb 14 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
音乐朗读剧《MARS RED》2021年TV动画化决定!
2020/03/06 日漫
无数据库的详细域名查询程序PHP版(2)
2006/10/09 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
PHP读取mssql json数据中文乱码的解决办法
2016/04/11 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
js实现HTML中Select二级联动的实例
2018/01/05 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
Python实现爬取逐浪小说的方法
2015/07/07 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
Python安装图文教程 Pycharm安装教程
2018/03/27 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
美国现代家具和家居商店:Apt2B
2016/08/29 全球购物
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
计算 s=(x*y)1/2,用两个宏定义来实现
2016/08/11 面试题
名词解释型面试题(主要是网络)
2013/12/27 面试题
自荐信不宜过于夸大
2013/11/06 职场文书
网页设计个人找工作求职信
2013/11/28 职场文书
特色冷饮店创业计划书
2014/01/28 职场文书
会计学自我鉴定
2014/02/06 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
满月酒邀请函
2015/01/30 职场文书
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android