2011-06-20 18 views
2

隨着年齡的增長,補間顏色的最佳方式是什麼?我想要持久,所以我使用時間上的差異來確定年齡,而不是在事情發生後運行動畫。補間顏色作爲項目年齡?

目標是在兩種顏色之間平滑過渡,例如10分鐘維持重新加載狀態。

感謝

編輯:我會從服務器發送的時間,我將使用和當前時間,讓經過的時間值。然後我想弄清楚它在動態範圍內有多遠(意味着它可能是10分鐘,可能是30分鐘)。之後,我想分配正確的顏色並使其持續老化。

我想弄清楚在中間拾取這個動畫的最佳方式,並順利淡入每一種可能的顏色(不是一步一步地)。

+0

補間部分很簡單;您只需在三維顏色座標空間中進行簡單的線性插值。但不清楚你想要什麼;你想讓頁面加載時的初始顏色反映年齡,然後讓年齡繼續緩慢變化? – Pointy

+0

你能否提供一些細節?您將問題標記爲javascript ...嘗試發佈html –

+0

除非您使用某些HTML5本地存儲功能,否則您需要一些服務器端組件以便在重新加載時保持顏色。 – mwcz

回答

1

使用jqueryui補間是非常簡單的沒有持久性。像這樣的東西應該工作:

http://jsfiddle.net/MeqVZ/

更改6000 60萬,如果你希望它在10分鐘內(時間以毫秒爲單位)改變。

放入持久性將取決於你想如何保持持久性。你是否將數據保存到數據庫中,你想設置一個cookie,你想使用web/dom存儲嗎?

你必須得到剩下的時間(取決於你想如何存儲時間),在重新加載頁面時計算當前的顏色(例如,如果你從某個顏色從0(#00)到255(#FF),並花了600秒(10分鐘),你需要將顏色設置爲255 * 284/600.0像

color_init = parseInt("00", 16); 
color_final = parseInt("FF", 16); 
yourNum = Math.ceil((color_init-color_final)*284/600.0); 
initial_color = yourNum.toString(16); 

,除非你不得不這樣對284秒紅色,綠色和藍色部分的顏色

在頁面的初始顏色中使用該顏色(並將其作爲動畫,剩下600-284秒)

編輯:更新小提琴。自動開始動畫;並允許在中途啓動(假設您可以從服務器讀取值)。