兼容所有浏览器的一键变灰(变黑白)效果
有的网站可能需要用到全站黑白功能(一般常用于悼念日) ,最方便就是增加css代码,但经测试不兼容IE10、11浏览器,所以配合grayscale.js这个插件,可以完美兼容所有浏览器,使用JS缺点是如网站图片多的话,在变黑白时会卡住几秒钟,为了兼容性也就牺牲了体验度了。效果演示GIF如下:
我们先添加定义好CSS样式,如下:
- /* 特殊日子 全站灰色 */
- .site-gray, .site-gray *{
- filter: gray !important;
- filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
- filter: grayscale(100%);
- -webkit-filter: grayscale(100%);
- -moz-filter: grayscale(100%);
- -ms-filter: grayscale(100%);
- -o-filter: grayscale(100%);
- }
HTML添加个a链接用于点击变灰:
- <a class="site-gray" data-gray="0" href="nojavascript...;">网站变灰a>
引用Jq和grayscale.js插件:
- <script src="js/jquery.js">script>
- <script src="js/grayscale.js">script>
先判断网站是否已变黑白,然后判断浏览器,是IE10、11的话则加载JS插件,否则使用CSS即可,给添加Class,JS代码如下:
- var navStr = navigator.userAgent.toLowerCase();
- $(".site-gray").click(function(){
- var gray = $(this).attr("data-gray");
- if( gray == 0 )
- {
- if(navStr.indexOf("msie 10.0")!==-1||navStr.indexOf("rv:11.0")!==-1){ // 判断是IE10或者IE11
- grayscale(document.body);
- grayscale(document.getElementsByTagName("img"));
- }
- $("html").addClass("site-gray");
- $(this).attr("data-gray", 1);
- }
- else
- {
- if(navStr.indexOf("msie 10.0")!==-1||navStr.indexOf("rv:11.0")!==-1){ // 判断是IE10或者IE11
- grayscale.reset(document.body);
- grayscale.reset(document.getElementsByTagName("img"));
- }
- $("html").removeClass("site-gray");
- $(this).attr("data-gray", 0);
- }
- });
用户登录
还没有账号?
立即注册