使用 CSS 和 CSS 实现图像灰度化鼠标悬停时重新着色?
我希望获取一个彩色图标(并且将是一个链接)并将其灰度化,直到用户将鼠标放在该图标上(然后它将为图像着色)。
这是否可以做到,并且以 IE 和 IE 的方式进行?火狐浏览器支持吗?
I am looking to take an icon that is colored (and will be a link) and turn it greyscale until the user places their mouse over the icon (where it would then color the image).
Is this possible to do, and in a way that is IE & Firefox supported?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
有许多方法可以实现这一点,我将通过下面的几个示例对其进行详细说明。
纯 CSS(仅使用一张彩色图像)
您可以在这里找到与此技术相关的文章< /a>.
纯 CSS(使用灰度和彩色图像)
此方法需要图像的两份副本:一份为灰度,另一份为全彩。使用 CSS
:hover
psuedoselector,您可以更新元素的背景以在两者之间切换:这也可以通过使用基于 Javascript 的悬停效果来完成,例如 jQuery 的
hover()
以相同的方式运行。考虑第三方库
去饱和库是一个通用库,可让您轻松在给定元素或图像的灰度版本和全彩版本之间切换。
There are numerous methods of accomplishing this, which I'll detail with a few examples below.
Pure CSS (using only one colored image)
You can find an article related to this technique here.
Pure CSS (using a grayscale and colored images)
This approach requires two copies of an image: one in grayscale and the other in full color. Using the CSS
:hover
psuedoselector, you can update the background of your element to toggle between the two:This could also be accomplished by using a Javascript-based hover effect such as jQuery's
hover()
function in the same manner.Consider a Third-Party Library
The desaturate library is a common library that allows you to easily switch between a grayscale version and full-colored version of a given element or image.
此处回答:将图像转换为 HTML/CSS 中的灰度
您甚至不需要使用两个听起来很痛苦的图像或图像处理库,您可以通过跨浏览器支持(当前版本)来完成,并且只需使用 CSS。这是一种渐进式增强方法,仅在旧浏览器上回退到颜色版本:
和像这样的filters.svg 文件:
Answered here: Convert an image to grayscale in HTML/CSS
You don't even need to use two images which sounds like a pain or an image manipulation library, you can do it with cross browser support (current versions) and just use CSS. This is a progressive enhancement approach which just falls back to color versions on older browsers:
and filters.svg file like this:
我在 http://www.diagnomics.com/ 上使用以下代码
从黑白到彩色的平滑过渡具有放大效果(刻度)
I use the following code on http://www.diagnomics.com/
Smooth transition from b/w to color with magnifying effect (scale)
您可以使用 sprite,它存储了两个版本(彩色和单色)。
You can use a sprite which has both version—the colored and the monochrome—stored into it.
这是一个演示。甚至可以在 IE7 中使用:
http://james.padolsey.com/demos/grayscale/
和
http://james.padolsey.com/javascript/grayscaling-in-non-ie-browsers/
Here's a demo. Even works in IE7:
http://james.padolsey.com/demos/grayscale/
and
http://james.padolsey.com/javascript/grayscaling-in-non-ie-browsers/