Css 如何在Safari中将图像设置为黑色/白色,然后在悬停时上色?

Css 如何在Safari中将图像设置为黑色/白色,然后在悬停时上色?,css,Css,在Safari和所有浏览器中,如何使图像变为黑白,然后在悬停时上色 img.grayscale { 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.333

在Safari和所有浏览器中,如何使图像变为黑白,然后在悬停时上色

img.grayscale {
    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"); /* Firefox 10+ */
    filter: gray; /* IE6-9 */
    -webkit-filter: grayscale(100%); /* Chrome 19+ & Safari 6+ */
    -webkit-transition: all .6s ease; /* Fade to color for Chrome and Safari */
    -webkit-backface-visibility: hidden; /* Fix for transition flickering */
}

img.grayscale: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%);
}
img.grayscale{
过滤器:url(“数据:图像/svg+xml;utf8,#灰度”);/*Firefox 10+*/
过滤器:灰色;/*IE6-9*/
-webkit过滤器:灰度(100%);/*Chrome 19+和Safari 6+*/
-webkit过渡:所有.6s易用;/*铬合金和Safari颜色渐变*/
-webkit背面可见性:隐藏;/*修复过渡闪烁*/
}
图像灰度:悬停{
过滤器:url(“数据:图像/svg+xml;utf8,#灰度”);
-webkit过滤器:灰度(0%);
}


这段代码在Safari中不起作用。

我找到了一个可以在Google Chrome、Safari 6+和Opera 15+上使用的解决方案。只需将以下代码复制并粘贴到CSS文件中即可:

  • 首先,将所有彩色图像转换为黑白(100%灰度)
  • 然后,在鼠标悬停时将图像恢复为彩色

    img {
        filter: grayscale(100%);
        -webkit-filter: grayscale(100%);
    }
    
    img:hover {
        filter: none;
        -webkit-filter: grayscale(0);
    }
    
  • 如果要将此效果仅应用于一个图像:

  • 首先,在HTML文件中为该图像指定一个唯一的ID。例如:

    <img src="img/stefets-picture.png" id="stefets-picture" alt="stefets's picture">
    
  • 希望这有帮助


    stefets

    我找到了一个可以在谷歌Chrome、Safari 6+和Opera 15+上运行的解决方案。只需将以下代码复制并粘贴到CSS文件中即可:

  • 首先,将所有彩色图像转换为黑白(100%灰度)
  • 然后,在鼠标悬停时将图像恢复为彩色

    img {
        filter: grayscale(100%);
        -webkit-filter: grayscale(100%);
    }
    
    img:hover {
        filter: none;
        -webkit-filter: grayscale(0);
    }
    
  • 如果要将此效果仅应用于一个图像:

  • 首先,在HTML文件中为该图像指定一个唯一的ID。例如:

    <img src="img/stefets-picture.png" id="stefets-picture" alt="stefets's picture">
    
  • 希望这有帮助


    stefets在Safari Mac上适用于我,但在Windows上不适用。您可能需要更新您的Safari版本才能正常工作。或者,如果你想让它跨浏览器工作,尝试另一种方式,也许使用jQueryAll四种情况在Safari 6.0.2(Mac)中也适用于我,但在Safari Mac上不适用于Windows…你可能需要更新你的Safari版本才能使其工作。或者,如果你想让它跨浏览器工作,试试另一种方式,也许在Safari 6.0.2(Mac)中使用jQueryAll四种情况对我也适用