本文实例讲述了JS实现匀加速与匀减速运动的方法。分享给大家供大家参考,具体如下:

/*

* 动画帧函数

*

* */

var requestFrame=function(){

var prefixList=['webkit','moz','ms'];

var func;

for(var i=0;i

func=window[prefixList[i]+"RequestAnimationFrame"];

if(func){

return function(callback){

func(callback);

}

}

}

return function(callback){

setTimeout(callback,67);

}

}();

/*

* 匀加速运动

*

* */

function animate_easeIn(element,from,to,duration,callback){

var time=+new Date;

var distance=to-from;

var a=2*distance/(duration*duration); //加速度a=2x/t^2(包含方向)

var func=function(){

var time2,offsetDis,durTime;

time2=+new Date;

durTime=time2-time; //运动的时间间隔

offsetDis=Math.ceil(a*durTime*durTime/2);//X=a*t^2/2

if(duration

element.css('left',to+'px');

callback();

}else{

element.css('left',from+offsetDis+'px');

requestFrame(func);

}

}

func();

}

/*

* 匀减速运动

*

* */

function animate_easeOut(element,from,to,duration,callback){

var time=+new Date;

var distance=Math.abs(to-from);

var a=2*distance/(duration*duration); //x=a*t^2/2 求出加速度

var v0=Math.sqrt(distance*2*a); // 根据公式:2as=v^2求出初速度

var func=function(){

var time2,offsetDis,durTime,pos;

time2=+new Date;

durTime=time2-time;

offsetDis=Math.ceil(v0*durTime-a*durTime*durTime/2); //根据s=v0*t+1/2*a*t^2求出位移x

if(duration

element.css('left',to+'px');

callback();

}else{

pos=from>to? from-offsetDis : from+offsetDis;

element.css('left',pos+'px');

requestFrame(func);

}

}

func();

}

希望本文所述对大家JavaScript程序设计有所帮助。

java模拟加速匀速减速_JS实现匀加速与匀减速运动的方法示例相关推荐

  1. java中json重复数据结构_JS实现去除数组中重复json的方法示例

    本文实例讲述了JS实现去除数组中重复json的方法.分享给大家供大家参考,具体如下: var array = [{"name":"123"},{"na ...

  2. java模拟加速匀速减速_【JavaSE练习】面向对象_练习_模拟汽车的自动驾驶系统

    [JavaSE练习]面向对象_练习_模拟汽车的自动驾驶系统 [JavaSE练习]面向对象_练习_模拟汽车的自动驾驶系统 模拟汽车驾驶系统 定义一个交通工具的类,包括: 属性:速度 方法:设置速度,加速 ...

  3. java模拟加速匀速减速_Android学习之 动画加速减速 匀速控制

    今天说一下新发现的一个类的使用: 网上很多都写了Interpolator,你们先了解一下.我主要是简单说怎么用. Android 动画之Interpolator插入器 --AccelerateInte ...

  4. java模拟加速匀速减速_步进电机加速-匀速-减速运行程序(C51源程序)

    ME300系列单片机开发系统+步进电机模块演示程序 功能:步进电机以加速方式启动,转速达到程序规定的最快速度后保持一段时间匀速运转,又开始以减速 方式运行直到步进电机停止转动.由K1键控制演示程序运行 ...

  5. java模拟加速匀速减速_Javascript模拟加速运动与减速运动代码分享

    加速运动,即一个物体运动时速度越来越快:减速运动,即一个物体运动时速度越来越慢.现在用Javascript来模拟这两个效果,原理就是用setInterval或setTimeout动态改变一个元素与另外 ...

  6. java模拟网易邮箱登录_使用服务端和客户端两种方法 模拟网易邮箱实现全选,全不选的功能...

    服务端和客户端的差别是 服务端在每次全选或全不选是都要刷新界面 而客户端不会 服务端: 前台 DataKeyNames="id" DataSourceID="SqlDat ...

  7. java语言二维数组转置_java实现二维数组转置的方法示例

    本文实例讲述了java实现二维数组转置的方法.分享给大家供大家参考,具体如下: 这里在文件中创建Test2.Exchange.Out三个类 在Exchange类中编写exchange()方法,在方法中 ...

  8. java 创建自定义菜单_Java实现微信公众号自定义菜单的创建方法示例

    本文实例讲述了Java实现微信公众号自定义菜单的创建方法.分享给大家供大家参考,具体如下: 开发公众号的时候可能需要给一些自定义菜单添加事件,比如点击某菜单然后服务端给用户推送信息. 我们也可以使用微 ...

  9. cocos2d-x动画加速与减速

    转自:http://novacreo.com/%E7%A8%8B%E5%BA%8F%E7%BB%84/cocos2d-x%E5%8A%A8%E7%94%BB%E5%8A%A0%E9%80%9F%E4% ...

最新文章

  1. 【FFmpeg】自定义回调函数处理AVIOContext中的数据
  2. git用ssh方式下载和提交代码
  3. 个人项目的设计与分析——类饿了么、美团式订餐类校园食堂版App“加个蛋”。...
  4. libevent源码深度剖析十
  5. PUSHAD和POPAD,以及PUSHA和POPA
  6. 两台windows服务器----SVN的迁移
  7. c++中的队列_C ++中的队列
  8. 这就是搜索引擎 (豆瓣).html 1.index 第1章 搜索引擎及其技术架构 1 第2章 网络爬虫 12 第3章 搜索引擎索引 36 第4章 索引压缩 76 第5章 检索模型与搜索排序 99
  9. java实现打开新窗口_[Java教程]javascript 打开新窗口(window.open)
  10. 早停法的应用(keras)
  11. 怎样通过迅捷PDF编辑器来修改PDF文件
  12. VPS部署以及域名设置和DNS解析
  13. 如何使谷歌浏览器的下载速度变为快速下载(例如USGS影像这类的大文件)
  14. MFC combo, radio控件使用
  15. 如何在DW中运行PHP文件
  16. springboot+vue+elementui校园运动会场地预约管理系统java
  17. 【Unity】游戏打包
  18. 企业信息化系统如何开发?如何沉淀企业数据?
  19. Windows7安装IE11步骤和中文安装包超简单
  20. 弓高弦长仪不确定度分析

热门文章

  1. 在ArcGIS中提取所需地方区域的shp
  2. Flutter实践之高仿有妖气漫画,从消息中间件看分布式系统的多种套路
  3. java.sql.SQLException:ORA-02289:序列不存在
  4. 解决Element type “http:“ must be followed by either attribute specifications, “>“ or “/>“.
  5. 在 Linux 中删除目录——如何从命令行删除目录和内容
  6. 无法启动承载网络,组或资源的状态不是执行请求操作的正确状态
  7. Minix源码解读:Minix总体框架
  8. MySQL 的prepare使用中的bug解析过程
  9. Vue 中的表格操作
  10. 目标检测YOLO实战应用案例100讲-基于点云的三维多目标检测算法研究