有一个相对较新的 CSS 属性filter
这可能会实现你所追求的目标。
The brightness
选项似乎就是你所追求的。
编辑 - 通过 URL 添加对 FF 的临时支持
JSFiddle 演示(具有亮度和对比度选项) http://jsfiddle.net/Paulie_D/warbe532/4/
CSS
img {
width:250px;
}
#one:hover {
-webkit-filter:brightness(50%);
-moz-filter:brightness(50%);
filter: url(#brightness); /* required for FF */
filter:brightness(50%);
}
#two:hover {
-webkit-filter:contrast(50%);
-moz-filter:contrast(50%);
filter: url(#contrast);
filter:contrast(50%);
}
MDN 过滤器 https://developer.mozilla.org/en-US/docs/Web/CSS/filter
支持非IE查看CanIUse.com http://caniuse.com/css-filters
FF 支持(在撰写本文时)需要定义 SVG 过滤器
亮度@50%
<svg height="0" xmlns="http://www.w3.org/2000/svg">
<filter id="brightness">
<feComponentTransfer>
<feFuncR type="linear" slope=".5" />
<feFuncG type="linear" slope=".5" />
<feFuncB type="linear" slope=".5" />
</feComponentTransfer>
</filter>
</svg>
对比度@200%
<svg height="0" xmlns="http://www.w3.org/2000/svg">
<filter id="contrast">
<feComponentTransfer>
<feFuncR type="linear" slope="2" intercept="-(0.5 * 2) + 0.5" />
<feFuncG type="linear" slope="2" intercept="-(0.5 * 2) + 0.5" />
<feFuncB type="linear" slope="2" intercept="-(0.5 * 2) + 0.5" />
</feComponentTransfer>
</filter>
</svg>