如何将图像设为黑/白,然后在 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%);
}
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/KDtAX/487/
此代码在 Safari 中不起作用。
我找到了一个适用于 Google Chrome、Safari 6+ 和 Opera 15+ 的解决方案。只需将以下代码复制并粘贴到您的 CSS 文件中即可:
然后,当您将鼠标悬停时,将图像重新变为彩色。
img {
filter: grayscale(100%);
-webkit-filter: grayscale(100%);
}
img:hover {
filter: none;
-webkit-filter: grayscale(0);
}
Run Code Online (Sandbox Code Playgroud)如果您只想将此效果应用于一张图像:
首先,在您的 HTML 文件中为该图像指定一个唯一 ID。例如:
<img src="img/stefets-picture.png" id="stefets-picture" alt="stefets's picture">
Run Code Online (Sandbox Code Playgroud)然后,在 CSS 文件中为该 ID 定义 CSS 规则:
#stefets-picture {
filter: grayscale(100%);
-webkit-filter: grayscale(100%);
}
#stefets-picture:hover {
filter: none;
-webkit-filter: grayscale(0);
}
Run Code Online (Sandbox Code Playgroud)希望这可以帮助,
斯蒂夫特
| 归档时间: |
|
| 查看次数: |
5056 次 |
| 最近记录: |