代码如下:
html{
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter: grayscale(100%);
filter: gray;
}
chrome下效果完美,火狐中body的背景图片没有变灰,IE11中完全无效。对于IE应该可以兼容到IE9。
我花了半个多小时,测试了各种方法,除了各种css外,还找过用js创建canvas的代码,或是使用某jq插件,最后也没成功实现全浏览器通吃。css的方法最简单,不过兼容性不怎么让人满意。
chrome是使用了-webkit-filter: grayscale(100%)这一项,火狐中生效的是filter:grayscale(100%)。
IE10和IE11在图像滤镜方面还是比较坑爹的,不能执行filter滤镜,而且连svg滤镜也不支持。
使用chrome的话可以玩玩下面这个小玩意:
可以重复点哦。
代码如下:
<button id="setGray">设置网页的灰度</button>
<script>
$("#setGray").click(
function setGray () {
var grayCss="-webkit-filter: grayscale(100%);-moz-filter: grayscale(100%);-ms-filter: grayscale(100%);-o-filter: grayscale(100%); filter: grayscale(100%);";
var num=prompt("请输入您希望的灰度(正整数)","");
if (num!=100) {
grayCss=grayCss.replace(/100/g, num);
};
$("html").attr("style",grayCss);
}
)
</script>
以上真是蛋疼之作,不知道会有地方用到不。