Por algún motivo, no puedo hacer que mis filtros SVG funcionen en Firefox. Sin embargo, funcionan bien en Opera. El elemento cuya propiedad he configurado para el filtro simplemente desaparece. Es muy extraño.Filtros SVG en Firefox
Aquí está mi código javascript:
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);
}
Alguna idea? Gracias
Sí, el resultado debería ser completamente blanco si se aplica el filtro. Me interesaría saber más sobre lo que está haciendo Opera en tu ejemplo original (supongo que serían elementos en el espacio de nombres incorrecto, ya que usas createElement en lugar de createElementNS). Un equivalente no guionizado del fragmento anterior muestra que Opera y Firefox se comportan igual (salida blanca). –
Sí, lo siento, estaba jodiendo con los valores y me olvidé de restablecerlos. He intentado algunos valores drásticamente diferentes sin cambios. Acabo de dejar de agregar dinámicamente los elementos svg con javascript y los agregué manualmente. Funciona ahora, gracias. – Nick