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 相关文章推荐
ext 同步和异步示例代码
Sep 18 Javascript
调用jQuery滑出效果时闪烁的解决方法
Mar 27 Javascript
jQuery插件实现图片轮播特效
Jun 16 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
Aug 30 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
Sep 19 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
Apr 25 Javascript
Vue中的v-for循环key属性注意事项小结
Aug 12 Javascript
微信小程序实现单选功能
Oct 30 Javascript
vue实现滑动超出指定距离回顶部功能
Jul 31 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
Sep 03 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
Jul 16 Javascript
js调用网络摄像头的方法
Dec 05 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随机显示图片的简单示例
2014/02/15 PHP
PHP添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
Jquery事件的连接使用示例
2013/06/18 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
2015/04/05 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
2015/11/26 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
React Navigation 使用中遇到的问题小结
2018/05/08 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
python比较2个xml内容的方法
2015/05/11 Python
python模块之re正则表达式详解
2017/02/03 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
解决 jupyter notebook 回车换两行问题
2020/04/15 Python
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
Trunki英国官网:儿童坐骑式行李箱
2017/05/30 全球购物
企划经理的岗位职责
2013/11/17 职场文书
单位创先争优活动方案
2014/01/26 职场文书
甜点店创业计划书
2014/01/27 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
2022/08/05 Servers