首頁 web前端 js教程 javascript運動框架程式碼

javascript運動框架程式碼

Jun 20, 2017 am 09:48 AM
javascript js 框架 運動

遲到了好幾天,不好意思哈!
繼續來優化一下javascript運動框架的程式碼。
之前的程式碼有bug,重複點擊時速度會加快,那麼要怎麼解決這個bug呢?

現在我們就來解決一下,
其實很簡單,
在開始運動時,關閉已有計時器。

思考一下:如何讓很多物體同時動,而且他們至今不會互相影響呢。
     1、單獨增加每個物件一個計時器
     2、當滑鼠移進去寬度成長至800,當滑鼠移出時,寬度慢慢減少至原本寬度
具體程式碼如下:
###開始的位置和結束的位置都是隨機的,用JSON來傳遞多個值,那要怎麼寫呢? ###     實現想法:1、把name,target兩個形參改為json###               2、然後使用for in循環中。遍歷屬性和值。 ######在move()函數裡,把開始位置和距離。改為用json###大致就是這樣。 ###                                      var上); ###dis[name] = json[name] - start[name];### }###

運動的時候都有快慢,有運動曲線,這要怎麼寫呢?
寫一個判斷條件,傳一個參數easing,當滿足條件時,相對應的速度快慢。
obj.timer = setInterval(function(){
n++;
for(var name in json){
var a = n/count;
switch(easing){
case 'linear':
 var cur = start[name] + a*dis[name];
 break;
case 'ease-in':
 var cur = start[name] + Math .pow(a,3)*dis[name];
 break;
case 'ease-out':
 var a = 1-n/count;
 var cur = start[name] + (1-Math.pow(a,3))*dis[name];
 break;
}



if(name == 'opacity'){
obj.style[name] = cur;
obj.style.filter = 'alpha('+cur*100+')';
}else{
obj.style[name] = cur +'px';
}
}
當然會有預設的,有的不需要設置,預設就可以了。 onload = function(){
var oDiv = document.getElementsByTagName('p')[0];
               var timer;
.樣式
if(obj.currentStyle){
return obj.currentStyle[name];//不相容於Google和火狐
}else{
//getComputedStyle:計算後的樣式
return getComputedStyle(obj,false)[name];//不相容IE8--
}
 }
//complete = dur,easing,fn
function move(obj,json,complete){
clearInterval(obj.timer);

var complete = complete || {};
complete.dur = complete.dur || 1000;
complete.easing = complete.easing | | 'ease-out';

var count = parseInt(complete.dur/30);//總次數
var start = {};//{width:300,height:300}
var dis = {};
//{width:300,height:300}
for(var name in json){
start[name] = parseFloat(getStyle(obj,name)) ;
dis[name] = json[name] - start[name];
}
var n = 0;//當前步數
obj.timer = setInterval(function(){
n++;
for(var name in json){
var a = n/count;
switch(complete.easing){
case 'linear':
 var cur = start [name] + a*dis[name];
 break;
case 'ease-in':
 var cur = start[name] + Math.pow(a,3)*dis[name] ;
 break;
case 'ease-out':
 var a = 1-n/count;
 var cur = start[name] + (1-Math.pow(a,3) )*dis[name];
 break;
}



# if(name == 'opacity'){
obj.style[name] = cur;
obj.style.filter = 'alpha('+cur*100+')';
}else{
obj.style[name] = cur +'px';
# }
}

if(n == count){
    clearInterval(obj.timer)
  complete.fn && complete.fn();
}

}, 30)
}

  oDiv.onmouseover = function(){
  move(this,{width:300,height:300},{dur:3000,easing:'ease-in'} )
  }
  oDiv.onmouseout = function(){
  move(this,{width:50,height:50},{dur:3000,fn:function((this,{width:50,height:50},{dur:3000,fn:function(){
# ){
#d ,{opacity:0})
  }})
  }

# }

以上是javascript運動框架程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何評估Java框架商業支援的性價比 如何評估Java框架商業支援的性價比 Jun 05, 2024 pm 05:25 PM

評估Java框架商業支援的性價比涉及以下步驟:確定所需的保障等級和服務等級協定(SLA)保證。研究支持團隊的經驗和專業知識。考慮附加服務,如昇級、故障排除和效能最佳化。權衡商業支援成本與風險緩解和提高效率。

PHP 框架的學習曲線與其他語言框架相比如何? PHP 框架的學習曲線與其他語言框架相比如何? Jun 06, 2024 pm 12:41 PM

PHP框架的學習曲線取決於語言熟練度、框架複雜性、文件品質和社群支援。與Python框架相比,PHP框架的學習曲線較高,而與Ruby框架相比,則較低。與Java框架相比,PHP框架的學習曲線中等,但入門時間較短。

PHP 框架的輕量級選項如何影響應用程式效能? PHP 框架的輕量級選項如何影響應用程式效能? Jun 06, 2024 am 10:53 AM

輕量級PHP框架透過小體積和低資源消耗提升應用程式效能。其特點包括:體積小,啟動快,記憶體佔用低提升響應速度和吞吐量,降低資源消耗實戰案例:SlimFramework創建RESTAPI,僅500KB,高響應性、高吞吐量

Java框架的效能比較 Java框架的效能比較 Jun 04, 2024 pm 03:56 PM

根據基準測試,對於小型、高效能應用程序,Quarkus(快速啟動、低記憶體)或Micronaut(TechEmpower優異)是理想選擇。 SpringBoot適用於大型、全端應用程序,但啟動時間和記憶體佔用稍慢。

golang框架文件最佳實踐 golang框架文件最佳實踐 Jun 04, 2024 pm 05:00 PM

編寫清晰全面的文件對於Golang框架至關重要。最佳實踐包括:遵循既定文件風格,例如Google的Go程式設計風格指南。使用清晰的組織結構,包括標題、子標題和列表,並提供導覽。提供全面且準確的信息,包括入門指南、API參考和概念。使用程式碼範例說明概念和使用方法。保持文件更新,追蹤變更並記錄新功能。提供支援和社群資源,例如GitHub問題和論壇。建立實際案例,如API文件。

如何為不同的應用場景選擇最佳的golang框架 如何為不同的應用場景選擇最佳的golang框架 Jun 05, 2024 pm 04:05 PM

根據應用場景選擇最佳Go框架:考慮應用類型、語言特性、效能需求、生態系統。常見Go框架:Gin(Web應用)、Echo(Web服務)、Fiber(高吞吐量)、gorm(ORM)、fasthttp(速度)。實戰案例:建構RESTAPI(Fiber),與資料庫互動(gorm)。選擇框架:效能關鍵選fasthttp,靈活Web應用選Gin/Echo,資料庫互動選gorm。

零零科技推出 8K 運動飛行相機:哈浮飛行相機 X1 PRO 與 X1 PROMAX 零零科技推出 8K 運動飛行相機:哈浮飛行相機 X1 PRO 與 X1 PROMAX Aug 28, 2024 pm 03:31 PM

飛行相機開創者零零科技宣布推出哈浮飛行相機X1PRO與X1PROMAX,並已於北京時間8月27日凌晨在Indiegogo開啟眾籌,上線145分鐘,眾籌金額即突破百萬美金,創造了飛行相機新紀錄。兩款產品作為全球首款也是最先進的飛行運動相機,重新定義了飛行拍攝體驗,特別適合運動愛好者與專業內容創作者。哈浮飛行相機X1PRO和X1PROMAX可折疊設計,無需遙控器互動體驗。 X1PROMAX:1/1.3吋CMOS感測器,客製7層鏡頭。 8K視頻,14檔動態範圍,107°廣角視野。可自訂的ND濾鏡。 X

Java框架學習路線圖:不同領域中的最佳實踐 Java框架學習路線圖:不同領域中的最佳實踐 Jun 05, 2024 pm 08:53 PM

針對不同領域的Java框架學習路線圖:Web開發:SpringBoot和PlayFramework。持久層:Hibernate和JPA。服務端響應式程式設計:ReactorCore和SpringWebFlux。即時計算:ApacheStorm和ApacheSpark。雲端運算:AWSSDKforJava和GoogleCloudJava。

See all articles