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 相关文章推荐
dreamweaver 8实现Jquery自动提示
Dec 04 Javascript
thinkphp 表名 大小写 窍门
Feb 01 Javascript
javascript绘制漂亮的心型线效果完整实例
Feb 02 Javascript
Vue.js基础知识汇总
Apr 27 Javascript
bootstrap IE8 兼容性处理
Mar 22 Javascript
Bootstrap table使用方法汇总
Nov 17 Javascript
vue props传值失败 输出undefined的解决方法
Sep 11 Javascript
vue数据操作之点击事件实现num加减功能示例
Jan 19 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
Sep 13 Javascript
vue实现移动端省市区选择
Sep 27 Javascript
vue同个按钮控制展开和折叠同个事件操作
Jul 29 Javascript
vue使用video插件vue-video-player详解
Oct 23 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
php smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
一个判断抢购时间是否到达的简单的js函数
2014/06/23 Javascript
影响jQuery使用的14个方面
2014/09/01 Javascript
Js删除数组中某一项或几项的几种方法(推荐)
2016/07/27 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
2016/09/25 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
使用Vue.js开发微信小程序开源框架mpvue解析
2018/03/20 Javascript
Vue退出登录时清空缓存的实现
2019/11/12 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
2020/10/02 Javascript
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
ansible作为python模块库使用的方法实例
2017/01/17 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
Python中property属性实例解析
2018/02/10 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
python实现Zabbix-API监控
2018/09/17 Python
python绘制简单彩虹图
2018/11/19 Python
python中的tcp示例详解
2018/12/09 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
2019/02/12 Python
python删除某个目录文件夹的方法
2020/05/26 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
Office DEPOT法国官网:欧迪办公用品采购
2018/01/03 全球购物
酒店执行总经理岗位职责
2013/12/15 职场文书
中文专业学生自我评价范文
2014/02/06 职场文书
幼儿发展评估方案
2014/06/11 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
党小组考察意见
2015/06/02 职场文书
检讨书范文
2019/04/16 职场文书
mysql中DCL常用的用户和权限控制
2022/03/31 MySQL