CSS/HTML:单击时删除图像过滤器

dnn*_*dnn 2 html css hyperlink hover

我在我的网站上使用一些图像作为链接.当我将鼠标悬停在其中一个图像上时,它们会从灰色变为彩色 - 当鼠标不再悬停时它们会变回灰色.

我希望图像在激活时保持颜色.假设我单击图像,它应保持颜色,直到单击/激活另一个链接.

这是我的代码:

HTML:

<p><a href="privileged.php" target="testframe">
<img class="grayscale" height="67" src="powerlogo.png" width="303">
</a></p>
<iframe name="testframe"></iframe>
Run Code Online (Sandbox Code Playgroud)

CSS:

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 3.5+ */
  filter: gray; /* IE6-9 */
  -webkit-filter: grayscale(100%); /* Chrome 19+ & Safari 6+ */
}

a:hover img, a:focus img {
    filter: none;
    -webkit-filter: grayscale(0%);
}
Run Code Online (Sandbox Code Playgroud)

上述内容适用于Firefox,但不适用于Chrome和IE.

我究竟做错了什么?

yck*_*art 6

您可以使用javascript将类添加/切换到您的元素,并使用css设置样式:

$("a").click(function(){
  $("a").removeClass("active");
  $(this).addClass("active");
});

a:hover img,
a:focus img,
a.active img {
  filter: none;
}
Run Code Online (Sandbox Code Playgroud)

http://fiddle.jshell.net/3uYDc/

  • 非常感谢,这非常有效.但是请放轻松,我在工作,所以我现在还没有回答. (2认同)