jquery – css过滤器反转()不能在mozilla firefox上工作?

前端之家收集整理的这篇文章主要介绍了jquery – css过滤器反转()不能在mozilla firefox上工作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对css filter invert()有一个恼人的问题;在Firefox 25上.
这是在jQuery .ready()上下文中插入的代码
$('#colorcontrast').bind('click',function() {

        var css = 'html {'+
                    ' filter:invert(100%);' + 
                    ' -webkit-filter: invert(100%);' +                    
                    ' -o-filter:invert(100%);' + 
                    ' -ms-filter:"invert(100%)"; }';      

        if (!window.counter) { 
            window.counter = 1;
        } else  { 
            window.counter ++;
            if (window.counter % 2 == 0) { 
                css = 'html {'+
                    ' -webkit-filter:invert(0%);' +
                    ' -moz-filter:invert(0%);' +
                    ' -o-filter:invert(0%); }';
            }
        };

        console.log(css);

        $('#contrast').html(css);

    });

它适用于Chrome和IE9,但不适用于Firefox 25.
当我使用Firefox访问其doc reference page时,我意识到现场演示无效!
有谁知道一些事情?任何人都可以指出我应用这种过滤器的其他方式或解决方案吗?
提前致谢.

解决方法

你可能想要使用 SVG filter.我基本上是一个使用XML结构的矢量形图形语言.有了它,您不仅可以创建矢量形状,还可以修改不同的元素.我不确定SVG文件是如何产生特定效果的(为什么它不支持普通的invert(),但是这个支持).

我用于此的xml文件

<svg xmlns=\'http://www.w3.org/2000/svg\'>
  <filter id=\'invert\'>
    <feColorMatrix in='SourceGraphic' type='matrix' values='-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0'/>
  </filter>
</svg>

我使用的css xml网址:

filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'invert\'><feColorMatrix in='SourceGraphic' type='matrix' values='-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0'/></filter></svg>#invert");

我知道颜色与原始颜色并不完全相同,但它是另一种颜色.
请注意,这只是firefox的“hack”,您可以将静态过滤器用于其他浏览器.

关于这个主题的更多信息:

Latest version

W3School tutorial

Morzilla explenation

a SVG generator online.

More info about SVG in Internet Explore

您无法在生成器中找到所有效果,但我可能会看到具有不同效果的不同结构.您可能希望先阅读一些基本的XML理解:)

jsFiddle

关于此事的其他主题What’s the CSS Filter alternative for Firefox?

原文链接:https://www.f2er.com/jquery/181146.html

猜你在找的jQuery相关文章