获取div的translate3d值?

假设div已应用于此:

-webkit-transform: translate3d(0px, -200px, 0px) 

我怎么能用jQuery检索这些值?

该值存储为matrixmatrix3d ,具体取决于是否设置了z值。 假设没有其他变换,对于2D矩阵,X和Y是最后两个值。 对于3D矩阵,X,Y,Z,1是最后四位数。

您可以使用正则表达式来获取值:

 function getTransform(el) { var results = $(el).css('-webkit-transform').match(/matrix(?:(3d)\(\d+(?:, \d+)*(?:, (\d+))(?:, (\d+))(?:, (\d+)), \d+\)|\(\d+(?:, \d+)*(?:, (\d+))(?:, (\d+))\))/) if(!results) return [0, 0, 0]; if(results[1] == '3d') return results.slice(2,5); results.push(0); return results.slice(5, 8); } 

如果您将接受的答案的匹配()模式更改为此,则会添加对负数的支持:

 $(el).css('-webkit-transform').match(/matrix(?:(3d)\(-{0,1}\d+(?:, -{0,1}\d+)*(?:, (-{0,1}\d+))(?:, (-{0,1}\d+))(?:, (-{0,1}\d+)), -{0,1}\d+\)|\(-{0,1}\d+(?:, -{0,1}\d+)*(?:, (-{0,1}\d+))(?:, (-{0,1}\d+))\))/) 

如果将正则表达式更新为以下内容,则会在变换具有浮点数时添加对奇数情况的支持:

 /matrix(?:(3d)\(-{0,1}\d+\.?\d*(?:, -{0,1}\d+\.?\d*)*(?:, (-{0,1}\d+\.?\d*))(?:, (-{0,1}\d+\.?\d*))(?:, (-{0,1}\d+\.?\d*)), -{0,1}\d+\.?\d*\)|\(-{0,1}\d+\.?\d*(?:, -{0,1}\d+\.?\d*)*(?:, (-{0,1}\d+\.?\d*))(?:, (-{0,1}\d+\.?\d*))\))/ 

编辑:这是错的,忽略这一点。

我想如果你做的事……

 var styles = $('.myclass').css('-webkit-transform'); 

你可能会得到translate3d(0px, -200px, 0px)

也许你可以解析那个字符串? 虽然看起来有点像黑客。