2013-02-08 35 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