2013-02-08 58 views
0

我在圖像上使用去飽和處理,使其成爲黑色和白色。我希望它能夠在懸停時使用CSS3轉換淡入顏色,但我似乎無法使其發揮作用。有任何想法嗎?CSS3動畫去飽和

下面是一個例子:http://jsfiddle.net/sChY5/以下是我的CSS

img.desaturate { 
-webkit-transition: all 0.2s ease-in-out; 
-moz-transition: all 0.2s ease-in-out; 
-o-transition: all 0.2s ease-in-out; 
transition: all 0.2s ease-in-out; 
filter: grayscale(100%); 
-webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); 
-ms-filter: grayscale(100%); -o-filter: grayscale(100%); 
filter: url('data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale'); 
filter: gray; 
-webkit-filter: grayscale(1); 
} 

img.desaturate:hover { 
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'1 0 0 0 0, 0 1 0 0 0, 0 0 1 0 0, 0 0 0 1 0\'/></filter></svg>#grayscale"); 
-webkit-filter: grayscale(0%); 
} 
+0

它在這裏工作 – soyuka 2013-02-08 11:51:02

回答

0

你沒有把上好的類選擇的transition性能。

不得位於img.desaturate:hover,但img.desaturate

(我說說你的jsfiddle的演示,這是不是你已經張貼在這裏同樣的代碼)

+0

我在這裏更新了http://jsfiddle.net/4tshM/與默認狀態的轉換。剛剛在Chrome瀏覽器,它工作正常,但不是在Firefox 18.0.2奇怪... – Xav 2013-02-08 11:58:07

+0

[FF18不支持此](http://caniuse.com/#feat=css-filters) – ByScripts 2013-02-08 11:59:32

+0

Gah。排序比。謝謝你們 =====編輯======= 其實,沒有排序。濾鏡效果在FF中起作用,它的轉換不起作用... – Xav 2013-02-08 12:01:03

0

我只是檢查,並得到它的jsfiddle工作正如你我想的那樣或者你想要澄清的東西。

+0

如果你看起來不錯,在jsFiddle中,當鼠標懸停時,轉換是可以的,但是當鼠標移出時(沒有轉換),轉換不會。 – ByScripts 2013-02-08 11:58:04

+0

在Firefox上,它確實使圖像飽和並消除了懸停時的去飽和,但過渡不起作用。它應該需要1秒鐘去除去飽和。 http://jsfiddle.net/4tshM/1/ – Xav 2013-02-08 12:09:50