其实将整个网页全局变色,无非就是三种,css直接设置,添加svg滤镜,通过js遍历所有标签更改颜色,于是

1、css

直接编辑样式,然后在需要应用的地方设置class

1 .gray { 
2     -webkit-filter: grayscale(100%);
3     -moz-filter: grayscale(100%);
4     -ms-filter: grayscale(100%);
5     -o-filter: grayscale(100%);
6     filter: grayscale(100%);
7     filter: gray;
8 }

2、svg

先编写svg文件

<svg version="1.1" 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调用

1 filter: url(gray.svg#grayscale);

3、js遍历

直接插入代码就好啦,能白嫖是不可能手写的(ps:用rgba和!important的无法改变,其他未实验)

1 <script src="http://james.padolsey.com/demos/grayscale/grayscale.js"></script>

js源不太好,会导致网页加载过慢,可手动下载到本地grayscale.js(点开之后f12,切换到network标签,刷新网页会出现一个文件,右键save as)

然后用js或者jq调用

1 /*js调用*/
2 grayscale(document.getelementbyid("thisimage"));
3 /*jq调用*/
4 grayscale($("#thisimage"));

大家可能没有注意到这篇博客是2020-04-04,让我们一起缅怀战疫中逝去的英雄,愿凛冬消散 春暖花开后 再无国殇

原文地址