css filter invert()不能在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访问其文档参考页面时 ,我意识到现场演示无效! 有谁知道一些事情? 任何人都可以指出我应用这种filter的其他方式或解决方案吗? 提前致谢。

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

我用于此的xml文件:

      

我使用的css + xmlurl:

 filter: url("data:image/svg+xml;utf8,#invert"); 

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


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

最新版本

W3School教程

Morzilla explenation

在线SVG发电机 。

有关SVG in Internet Explore的更多信息


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

的jsfiddle


关于此问题的其他主题: 什么是Firefox的CSSfilter替代品?

Firefox 尚不支持CSSfilter 。 完全没有。

此外,您应该切换类,而不是动态创建样式表。