javascript - 把图标变成黑白

标签 javascript jquery html css internet-explorer

我的代码中有以下图标:

HTML:

<a href="#" id="PickUp" class="PickUpIcon"></a>

CSS:

width: 24px;
height: 24px;
background: url(../images/Icons/Answer.jpg) no-repeat;
cursor: pointer;

它看起来像这样:enter image description here

我想(使用 css、js 或 jQuery)将这个图标变成这样:enter image description here

意思是将彩色图标变成黑白图标,可以吗?

我正在使用 html 4、CSS2 和 IE 8(我不能使用 HTML5 或其他浏览器)

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

最佳答案

你可以用 SVG 来做

检查这个答案 https://stackoverflow.com/a/8612047/1033200

<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>

然后使用这个 CSS:- [ Demo ]

img {
    filter: url(filters.svg#grayscale); /* Firefox 3.5+ */
    filter: gray; /* IE6-9 */
    -webkit-filter: grayscale(1); /* Google Chrome & Safari 6+ */
}

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

img:hover {
    filter: none;
    -webkit-filter: grayscale(0);
}

关于javascript - 把图标变成黑白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15108417/

相关文章:

html - 在另一个 div 上启用 Readonly DIV 的滚动

javascript - iOS iPad 平板电脑无法正确呈现视口(viewport)

javascript - 悬停图标时如何使密码文本框值可见

javascript - 一次只允许执行一个 jQuery 函数

jquery - 按下按钮时动画跨度

java - 将参数从 JavaScript (jQuery) 传送到基于 Java 的 REST 服务的最佳实践?

ajax - Jquery 滚动在 IE 上点击两次

javascript - 如何在 Polymer 1.0 中将值从一个自定义元素传播到另一个自定义元素?

javascript - 一对一过滤JavaScript数组添加/删除条件

javascript - key 作为 ng-model