Javascript 将图标变成黑白

Javascript 将图标变成黑白,javascript,jquery,html,css,internet-explorer,Javascript,Jquery,Html,Css,Internet Explorer,我的代码中有以下图标: HTML: 看起来是这样的: 我想使用css、js或jQuery将此图标变成如下所示: 意思是把颜色图标变成黑白的,可能吗 我正在使用HTML4、CSS2和IE8,我不能使用HTML5或其他浏览器 我知道我可以使用两个不同的图标,但我想知道是否还有其他可能性,因为图标可以动态添加,我不希望每个人都需要提供两个图标。您可以使用SVG 检查这个答案 要禁用悬停时的灰度,可以使用:- img:hover { filter: none; -webkit-filte

我的代码中有以下图标:

HTML:

看起来是这样的:

我想使用css、js或jQuery将此图标变成如下所示:

意思是把颜色图标变成黑白的,可能吗

我正在使用HTML4、CSS2和IE8,我不能使用HTML5或其他浏览器

我知道我可以使用两个不同的图标,但我想知道是否还有其他可能性,因为图标可以动态添加,我不希望每个人都需要提供两个图标。

您可以使用SVG

检查这个答案

要禁用悬停时的灰度,可以使用:-

img:hover {
    filter: none;
    -webkit-filter: grayscale(0);
}
您可以使用SVG来实现

检查这个答案

要禁用悬停时的灰度,可以使用:-

img:hover {
    filter: none;
    -webkit-filter: grayscale(0);
}
您可以使用过滤器:灰度100%;,尽管它目前仅由Chrome支持

<a href="#" id="PickUp" class="PickUpIcon">
    <img src='http://i.stack.imgur.com/tVNmr.jpg' class="bw" />
</a>

img.bw {
    filter: grayscale(100%);
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    width: 24px;
    height: 24px;
    cursor: pointer;
}
您可以使用过滤器:灰度100%;,尽管它目前仅由Chrome支持

<a href="#" id="PickUp" class="PickUpIcon">
    <img src='http://i.stack.imgur.com/tVNmr.jpg' class="bw" />
</a>

img.bw {
    filter: grayscale(100%);
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    width: 24px;
    height: 24px;
    cursor: pointer;
}

我以前在一些网站上使用过,它应该完全兼容跨浏览器:

element { 
    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%);
    -o-filter: grayscale(100%);
    filter: gray(1);
    filter: grayscale(100%);
}

我以前在一些网站上使用过,它应该完全兼容跨浏览器:

element { 
    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%);
    -o-filter: grayscale(100%);
    filter: gray(1);
    filter: grayscale(100%);
}
你可以用

在任何地方都可以使用,几乎在每个网站上都可以使用

通过调整背景图像的背景位置、宽度和高度,您可以使用两个图像并排的图标,并仅显示图像的一部分

在任何地方都可以使用,几乎在每个网站上都可以使用

您可以使用一个图标,该图标将两个图像并排显示,并通过调整背景位置以及背景图像的宽度和高度,仅显示图像的一部分

其中Answer_grey.jpg是您的灰色图像。这是一种简单的方法,在所有浏览器中都适用。有一种更好的方法,可以将绿色和灰色图像添加到一个图像中,并悬停时更改显示图像的哪一部分。这是更好的,因为你加载了第1页的图像,当你在上面的时候,它是好的,但是如果你有2个图像,那么在悬停的时候,你会看到这个图像是如何加载的,如果这个图像是大的


其中Answer_grey.jpg是您的灰色图像。这是一种简单的方法,在所有浏览器中都适用。有一种更好的方法,可以将绿色和灰色图像添加到一个图像中,并悬停时更改显示图像的哪一部分。这是更好的,因为你加载的是第1页的图像,当你在上面时,它是可以的,但是如果你有2个图像,那么在悬停时,你会看到如果这个图像很大,这个图像是如何加载的。

你可以使用2个图像来完成这项工作。一个是原创的,一个是黑白的。你可以用photoshop或者类似的东西来改变图标。对使用上述建议有任何异议吗?你没有提到你需要同时使用两个图标。您可以使用精灵来实现此目的。您可以使用两个图像来实现此目的。一个是原创的,一个是黑白的。你可以用photoshop或者类似的东西来改变图标。对使用上述建议有任何异议吗?你没有提到你需要同时使用两个图标。您可以使用精灵来实现此目的。我们如何将此应用于背景图像?OP将图像作为背景图像,而不是通过IMG标签。目前chrome支持OP,OP提到他需要支持IE8。我们如何将其应用于背景图像?OP将图片作为背景图片,而不是通过IMG标签。目前chrome支持,OP提到他需要支持IE8
<a href="#" id="PickUp" class="PickUpIcon">
    <img src='http://i.stack.imgur.com/tVNmr.jpg' class="bw" />
</a>

img.bw {
    filter: grayscale(100%);
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    width: 24px;
    height: 24px;
    cursor: pointer;
}
element { 
    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%);
    -o-filter: grayscale(100%);
    filter: gray(1);
    filter: grayscale(100%);
}
a { 
width: 24px;
height: 24px;
background: url(http://i.stack.imgur.com/tVNmr.jpg) no-repeat;
cursor: pointer;
display: block;
filter: grayscale(100%);
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
}
.PickUpIcon a:hover {
  width: 24px;
  height: 24px;
  background: url(../images/Icons/Answer_grey.jpg) no-repeat;
  cursor: pointer;
}