Javascript 错误:<;g>;属性转换:应为';(';

Javascript 错误:<;g>;属性转换:应为';(';,javascript,css,svg,css-transforms,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-tran

希望有人知道该做什么,并能帮助我:

函数执行以下操作:

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”

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

错误:属性转换:应为“(”,“…39394)translateZ(0)”

我也试过不带“+”直接连接。也许有人知道我做错了什么

更新

我将“s”改为:
s='matrix3d('+matrix.a+'、'+matrix.b+'、'+0+'、'+0+'、'+matrix.c+'、'+matrix.d+'、'+0+'、'+0+'、'+1+'、'+matrix.e+'、'+matrix.f+'、'+0+'、'+1+');

不幸的是,同样的错误:

错误:属性转换:应为“(”,“matrix3d(2.03961675842…”


错误来自第一行,您在其中设置了属性。
transform
SVG元素上的属性与CSS中的
transform
样式有点不同,之后在
style.transform
上的所有内容都应该可以。

所以我知道我的问题所在。除了之外,不可能使用任何东西de>matrix()或
matrix3d()

当我不小心键入时,我遇到了完全相同的错误

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

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

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

当使用矩阵时,你不能附加其他东西,我猜@Temaniaf如果提到,你确定可以附加
translateZ()
在矩阵后面?@zeropublix不,我不确定:/I我刚读到关于它的文章,他们说它是有效的。“由于我不是专业人士,我不确定这是否是正确的方法。啊,你应该添加SVG标签……现在我在title@TemaniAfif在哪里添加svg标记?您能告诉我要更改什么吗?或者它是错误的,我可以不是像我想的那样做吗?@breezertwo为什么你需要这个属性,风格本身不起作用吗?我不知道你想从我这里知道什么。整个事情都是从一个JS插件开始的。我不得不这样使用它。但是因为在手机上速度太慢,我想尝试一下强制硬件加速和使用3D渲染。@breezertwo AFAIK
translateZ(0)
技巧仅对尚未进行变换的元素有用。矩阵变换应自行触发硬件加速。不要在translateZ技巧上浪费时间,现代浏览器已学会如何通过正常方式应用硬件加速