原因很简单:如果您设置CSS转换 - 无论是通过JavaScript还是CSS - 当您尝试获取它时,都会返回矩阵转换。所以说你做一些简单的像......
element.style.webkitTransform = "translate3d(10px,0,0)";
var transform = element.style.webkitTransform;
transform
不会translate3d(10px,0,0)
,这将是matrix3d(10px,0,0,[...])
。要获得这些值,你需要分析矩阵,如...
element.style.webkitTransform = "translate3d(10px,0,0)";
var matrix = new WebKitCSSMatrix(element.style.webkitTransform); //get the matrix
var x = matrix.m41 //get the value of x in the matrix
x += 1500 //modify x
element.style.webkitTransform = matrix.toString //Apply the new transformation
这是相同的代码与数据ATTR:
你可以玩的3D CSS矩阵在这里:
http://jsfiddle.net/F8xLv/
所以最好使用比数据属性有解析矩阵,因为后者甚至比以前更复杂?看起来你上面演示的方法可能同样有效,不难实现。 –
我用数据集示例更新了答案,我认为它更具可读性。 – Duopixel
好吧,我现在明白了。 –