2011-07-05 132 views
7

我有一個按鈕(錨點),它有一個CSS3漸變。
我想在用戶懸停在按鈕上時將漸變動畫/淡化爲一種顏色。
問題是我找不到如何做到這一點 - 因爲顏色上的jQuery UI動畫只適用於普通的,而不是漸變。
任何想法?
謝謝!CSS漸變動畫

回答

5

您可以使用CSS3動畫,儘管它們在所有瀏覽器上都不受支持。這個頁面有一個改變背景顏色的例子,顯然你需要添加漸變。

http://css3.bradshawenterprises.com/animations/

+0

謝謝。我應該爲舊版瀏覽器做些什麼?我應該使用svg嗎? – amitairos

+0

此頁面不會更改背景顏色,它會更改不透明度。 –

+0

@DoctorMick我嘗試過使用CSS3轉換,但是它在懸停時以及按下按鈕時不起作用。有任何想法嗎? -transition:背景1s輕鬆進出 – amitairos

5

我已經寫了一個jQuery插件動畫CSS3漸變爲支持它的瀏覽器。

你可以找到它here

它採用了漸變cssHook我寫了標準化CSS3漸變,使之更易於使用。

你會用它喜歡:

$("#elem").animateGradient('linear-gradient(red, blue)', 1000); 

它採用$.queue$.dequeue/next()所以你也可以添加其他動畫。

它需要先設置漸變才能使其工作。

動畫的問題在於,jQuery通常在CSS屬性值上進行操作,而不是數字,例如,在值內。

+0

插件Tomgrohl令人印象深刻的工作 –

0

檢查此jQuery庫名爲Backgroundor,我自己寫的。

只需輸入$('#divId').backgroundor();就可以了,它可以工作,同時還有很多選項。檢查它們:

// the values here are the default values 
options = { 
    opacityval : 0; // int, only 1 or 0 are accepted now (can be boolean too) 
    intervaltime : 100; // int, interval time value 
    values  : [0,51,75]; // array of int, default percentage values for the linear gradient colors 
    colors  : ['#499bea','#207ce5','#1679e3']; // array of string (hex values), default colors for the linear gradient 
    color   : '#000000'; // string (hex value), default color for opacity animation 
    animspeed  : 'linear'; // string, default animation curve 
    animdegree : '90deg'; // string, default linear-gradient degree 
}