我在图像上使用去饱和度使其变成黑色和白色。我想让它在悬停时淡化回来(使用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 :(得分:0)
您没有将transition
属性放在好的类选择器上。
不得位于img.desaturate:hover
,而必须位于img.desaturate
(我说的是你的jsfiddle演示,这与你在这里发布的代码不同)
答案 1 :(得分:0)
我只是检查它,并在jsfiddle中按照我的想法或你想要的方式工作,请澄清。