Sha*_*had 5 css firefox jquery css-filters
我对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);
});
Run Code Online (Sandbox Code Playgroud)
它适用于Chrome和IE9,但不适用于Firefox 25.当我使用Firefox 访问其文档参考页面时,我意识到现场演示无效!有人知道吗?任何人都可以指出我应用这种过滤器的其他方式或解决方案吗?提前致谢.
nkm*_*mol 11
您可能想要使用SVG过滤器.我基本上是一个使用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>
Run Code Online (Sandbox Code Playgroud)
我使用的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");
Run Code Online (Sandbox Code Playgroud)
我知道颜色与原始颜色并不完全相同,但它是另一种颜色.请注意,这只是firefox的"hack",您可以将静态过滤器用于其他浏览器.
有关SVG in Internet Explore的更多信息