希望有人知道该怎么做,可以帮助我:
一个函数执行此操作:
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;
}
其中" s"这是:
s = 'matrix(' + matrix.a + ',' + matrix.b + ',' + matrix.c + ',' + matrix.d + ',' + matrix.e + ',' + matrix.f + ')'
这与此完美结合。
对于硬件加速,我想将+ ' translateZ(0)'
添加到" s"。
执行此操作后,我收到以下错误:
错误:< g取代;属性转换:预期'('," ... 39394)translateZ(0)"。
我也尝试过没有" +"并直接连接。也许有人知道我做错了什么。
更新
我改变了#34; s"至:
s = 'matrix3d(' + matrix.a + ',' + matrix.b + ',' + 0 + ',' + 0 + ',' + matrix.c + ',' + matrix.d + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 1 + ',' + 0 + ',' + matrix.e + ',' + matrix.f + ',' + 0 + ',' + 1 + ')';
因为有同事的想法。
遗憾的是同样的错误:
错误:< g取代;属性转换:预期'('," matrix3d(2.03961675842 ......"。
答案 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的人找到这篇文章:)