我知道background-blend-mode是CSS的一个新特性,但我想知道它是否可以与CSS中的滤镜技术相结合。基本上,我想实现的是在悬停时,图像从全彩变为去饱和度并与彩色背景混合(混合模式为multiply)。下面是我尝试过的一个示例,你可以看到红色图像工作正常,因为它是暗色,但对于橙色和黄色,原始图像的颜色会透过黄色显示出来,因为它们更暗,所以图像需要去饱和度。最后一个示例#yellow2是我尝试实现去饱和度的方式,但这会导致图像忽略混合模式。
http://jsfiddle.net/cstr44/dzwH4/2/
<div id="red"></div>
<div id="orange"></div>
<div id="yellow"></div>
<div id="yellow2"></div>
#red{
width:250px;
height:200px;
background:red url(http://www.mucky-pups.co/wp-content/uploads/2013/05/9.jpg);
background-size:250px 200px;}
#red:hover{
background-blend-mode: multiply; }
#orange{
width:250px;
height:200px;
background:orange url(http://0.tqn.com/d/friendship/1/S/R/-/-/-/special-dog-breeds.jpg); background-size:250px 200px;}
#orange:hover{
background-blend-mode: multiply;}
#yellow{
width:250px;
height:200px;
background:yellow url(http://stylonica.com/wp-content/uploads/2014/03/Puppy-3-dogs-1993798-1024-76811.jpg); background-size:250px 200px;}
#yellow:hover{
background-blend-mode: multiply;}
#yellow2{
width:250px;
height:200px;
background:yellow url(http://stylonica.com/wp-content/uploads/2014/03/Puppy-3-dogs-1993798-1024-76811.jpg); background-size:250px 200px;
}
#yellow2:hover{
background-blend-mode: multiply;
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(100%);}
除了创建每个图像的去饱和版本之外,还有其他可能的方法吗?