当前位置:首页 > 日记 > 正文

JS实现匀加速与匀减速运动的方法示例

JS实现匀加速与匀减速运动的方法示例

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

/* * 动画帧函数 * * */  var requestFrame=function(){  var prefixList=['webkit','moz','ms'];  var func;  for(var i=0;i<prefixList.length;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<durTime){      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<durTime){      element.css('left',to+'px');      callback();    }else{      pos=from>to? from-offsetDis : from+offsetDis;      element.css('left',pos+'px');      requestFrame(func);    }    }    func();}

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript动画特效与技巧汇总》、《JavaScript图形绘制技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

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

相关文章

PPT2007怎么将视频格式转换图文教

PPT2007怎么将视频格式转换图文教

教程,格式转换,图文教程,转换成,视频,  怎样把PPT转换成视频?通过将PPT输出为视频格式,可以实现更广泛的观看PPT操作。下面小编马上就告诉大家将ppt输出为视频的方法吧。PPT2007转换成视频放映教程打开要转换成视频的PPT。02选择幻灯片放…

解决word2013配置进度的两种方法

解决word2013配置进度的两种方法

方法,配置,两种,进度,电脑软件,  相信总有人遇到过每次打开Office2013都会遇到坑爹的&ldquo;安装程序正在准备必要的文件&rdquo;然后再显示&ldquo;正在配置Microsoft Office Professional Plus 2013"的情况(如下图所示)。那么下面就由小…

excel求和公式使用方法excel求和公

excel求和公式使用方法excel求和公

公式,使用方法,电脑软件,excel,  Excel中经常需要使用求和公式对数据进行求和,求和公式具体该如何使用呢?下面是由小编分享的excel求和公式的使用方法,以供大家阅读和学习。excel求和公式的使用方法1步骤1:拖动鼠标,选取要计算的数据excel求…

查看qq好友天数教程如何查看QQ成为

查看qq好友天数教程如何查看QQ成为

方法,教程,天数,好友,纪念日,  很多人想知道和朋友成为QQ好友有多少天了,如何查看呢?下面是小编为大家整编的查看QQ成为好友天数的方法,大家快来看看吧。查看qq好友天数方法在QQ中查看好友天数有两种方法,一种是使用QQ查看,另一种是使用QQ空间…

怎么知道自己是否插了分页符

怎么知道自己是否插了分页符

分页,检查,步骤,插了,知道自己,  在word编辑中常常需要从第二页插入页码,第一页不需要页眉页脚,大家通常知道插入分隔符可以很好的实现,但是在操作的过程中常常未能如愿,有的时候不知道是否已插入分节符,下面小编就告诉你怎么知道自己是否插了…

在vue-cli脚手架中配置一个vue-rou

在vue-cli脚手架中配置一个vue-rou

路由,配置,脚手架,电脑软件,vue,前言这篇文章给大家讲解的是在vue-cli脚手架中如何配置vue-router前端路由的相关内容,分享出来供打击参考学习,下面来一起看看详细的介绍:首先你需要一个main.js文件//然后引入vue-routerimport VueRouter from…

PPT2010怎么增加撤销次数

PPT2010怎么增加撤销次数

次数,电脑软件,  随着时代发展,PPT办公软件被很普遍的使用在我们工作、生活之中。因为PPT制作过程中,操作很多很繁琐,往往为了一个要达到的效果要试验很多次。做的步骤太多了导致撤销不了是很麻烦的,又要重新开始调整。那么我们就需要增加PP…

怎么在excel中进行隔行填充在excel

怎么在excel中进行隔行填充在excel

填充,隔行,方法,步骤,电脑软件,  Excel作为办公人员常用的软件之一,获得了世界范围的推广和使用。Excel软件依靠其强大的功能,成为一款快速、有效处理函数和公式的优秀软件。我们在编辑Excel表格数据的时候,难免会因为长时间工作眼花导致…

bootstrap表单按回车会自动刷新页

bootstrap表单按回车会自动刷新页

刷新页面,表单,解决办法,按回车,电脑软件,想给form表单增加回车自动提交的功能$('#password').keydown(function(event){ if (event.keyCode == 13) $('#login').click(); });然而,并没有达到预期的效果,而是自动刷新了表单,并将表单…

excel上插入的方法步骤图

excel上插入的方法步骤图

方法,插入图片,步骤,电脑软件,excel,  Excel是一个办公很经常用到的一个办公软件,他主要用于数据的分析、查看、对比等,让数据看起来更直观,更容易对比,而有很多时候需要在Excel上放图片,下面是由小编分享的,希望对你有用。excel上插入图片的方…

BootStrap下的弹出框加载select2框

BootStrap下的弹出框加载select2框

框架,加载,弹出框,解决方法,电脑软件,bootstrap下的弹出框加载select2框架失败的解决方案如下所示:$("#modal").on("shown.bs.modal", function(){ //等待弹出框弹出后再渲染select2控件 $("#select2").select2({ //再…

怎么在Word文档中插入域来设置输入

怎么在Word文档中插入域来设置输入

输入,文档,设置,提示,电脑软件,  Word文档中需要给出提示,当前的作者能够将这个提示更改为自己的名字,这种提示可以通过插入域来实现。以下是小编为您带来的关于在Word文档中插入域来设置输入提示,希望对您有所帮助。在Word文档中插入域来设…