国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

JS實現勻加速與勻減速運動的方法示例

2024-05-06 16:39:29
字體:
來源:轉載
供稿:網友

本文實例講述了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/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新绛县| 伊宁县| 云霄县| 井陉县| 澎湖县| 饶阳县| 兴安县| 含山县| 兖州市| 江都市| 松潘县| 德格县| 天门市| 楚雄市| 阳原县| 扶风县| 东方市| 富顺县| 湖南省| 贞丰县| 宜春市| 登封市| 中西区| 云和县| 哈巴河县| 孝义市| 阳山县| 通辽市| 株洲县| 盐池县| 南陵县| 武城县| 遂溪县| 清丰县| 汉川市| 奉新县| 手机| 银川市| 通江县| 定南县| 陕西省|