错误:<g>属性转换:预期&#39;(&#39;

时间:2018-04-13 12:55:31

标签: javascript css svg css-transforms

希望有人知道该怎么做,可以帮助我:

一个函数执行此操作:

element.setAttributeNS(null, 'transform', s);
if ('transform' in element.style) {
  element.style.transform = s;
} else if ('-ms-transform' in element.style) {
  element.style['-ms-transform'] = s;
} else if ('-webkit-transform' in element.style) {
  element.style['-webkit-transform'] = s;
}

其中&#34; s&#34;这是:  s = 'matrix(' + matrix.a + ',' + matrix.b + ',' + matrix.c + ',' + matrix.d + ',' + matrix.e + ',' + matrix.f + ')'

这与此完美结合。 对于硬件加速,我想将+ ' translateZ(0)'添加到&#34; s&#34;。

执行此操作后,我收到以下错误:

  

错误:&lt; g取代;属性转换:预期&#39;(&#39;,&#34; ... 39394)translateZ(0)&#34;。

我也尝试过没有&#34; +&#34;并直接连接。也许有人知道我做错了什么。

更新

我改变了#34; s&#34;至: s = 'matrix3d(' + matrix.a + ',' + matrix.b + ',' + 0 + ',' + 0 + ',' + matrix.c + ',' + matrix.d + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 1 + ',' + 0 + ',' + matrix.e + ',' + matrix.f + ',' + 0 + ',' + 1 + ')';因为有同事的想法。

遗憾的是同样的错误:

  

错误:&lt; g取代;属性转换:预期&#39;(&#39;,&#34; matrix3d(2.03961675842 ......&#34;。

3 个答案:

答案 0 :(得分:1)

错误来自第一行,您可以在其中设置属性。 SVG元素的transform属性与CSS中的transform样式略有不同,they do not support translateZ. style.transform之后的所有内容都应该没问题。

答案 1 :(得分:0)

所以我现在的问题是什么。除了matrix()matrix3d()

之外,我们无法使用任何内容

答案 2 :(得分:0)

我不小心打字时也遇到了完全相同的错误

.attr("transform", `matrix3d(${this.transformToArray(matrix)})`)

代替

.style("transform", `matrix3d(${this.transformToArray(matrix)})`)
在D3中

。请注意,该错误与转换无关,而与D3函数有关。只是为了帮助使用D3的人找到这篇文章:)