由于某些原因我不能让我SVG过滤器的工作在Firefox。他们的工作现在歌剧院,但是。元素的属性,我设置的过滤器上只是消失。这是非常奇怪。

这是我的javascript code:

defsElement = SVGDoc.createElement("defs");
var filterElement = SVGDoc.createElement("filter");
filterElement.setAttribute( "id", "cm-mat");
filterElement.setAttribute( "filterUnits", "objectBoundingBox");

var fecolormatrixElement = SVGDoc.createElement("feColorMatrix");
fecolormatrixElement.setAttribute("type", "matrix");
fecolormatrixElement.setAttribute("in", "SourceGraphic");
fecolormatrixElement.setAttributeNS(null, "values", "1 1 1 1 1  2 2 2 2 1  1 1 1 1 1  1 1 1 1 1");
filterElement.appendChild(fecolormatrixElement);
defsElement.appendChild(filterElement);
SVGDoc.documentElement.insertBefore(defsElement, SVGDoc.documentElement.childNodes.item(1));

partRef = getElementFromID(SVGDoc.documentElement, part);
if(partRef != null)
{
    partRef.style.setProperty('filter', 'url(#cm-mat)', null);
}

任何想法?感谢

有帮助吗?

解决方案

爱尔兰保罗 做一个演示应用 SVG过滤器HTML5视频.

源代码 现场演示 演示如何交换机之间的过滤器。在这种情况下,所有SVG件被直接写入页面作为标记,不插入动态的通过JavaScript。

它可能会帮助,试图获得它的工作中使用直线上升的标签,然后转到JavaScript一次它的工作。可能会有一些奇怪的怪胎的执行情况(错误),这仅仅表达本身创建时的动态(/投机).

此外,它可能取决于没有哪个版本的火狐你使用。我不知道哪个版本的开始支持SVG过滤器,但是保罗的员额似乎表明可能需要一夜间建成。

祝你好运!

其他提示

这矩阵颜色看起来对我喜欢它应该把每一种颜色到的每个组件上充分,使得元件完全是白色。

(也可能是更容易为其他人要弄清楚,如果你发布一个完整的例子的网址显示的问题,而不仅仅是一个JavaScript代码,这将允许其他人测试的理论,为什么它会是错误的。)

这可能与 Firefox的错误#308590 。总之火狐无法解决过滤网址时,你的SVG从数据的URL加载或您在文档中有一个<基数> -Tag。

在您的例子的Firefox验看URL(#厘米垫)某处的嵌入文档的外部。不幸的是它得到了最近才固定和我来说,我没有发现任何解决办法,但省略基本标签弄好了。

您的网页需要被用作XML的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top