$ .css('transform')返回错误的值旋转

use*_*584 1 css firefox jquery

可能重复:
获取元素-moz-transform:在jQuery中旋转值

Firefox 15 - Chrome:

$('#img2').css('transform');

return =>  "rotate(90deg)"
Run Code Online (Sandbox Code Playgroud)

Firefox 16

$('#img2').css('transform');
return => matrix(0, 1, -1, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)

知道怎么在firefox中获得旋转值16什么是矩阵?

在Firebq我得到:

element.style {
    height: auto;
    transform: rotate(90deg);
    width: auto;
}
Run Code Online (Sandbox Code Playgroud)

Jud*_*her 6

矩阵是形式中的仿射变换[a,b,c,d,tx,ty].如果将css字符串解析为具有这些属性的对象(分别[0,1,-1,0,0,0]在您的示例中),则可以通过执行以下操作来计算旋转角度(以度为单位):Math.atan2(matrix.b,matrix.a) * (180 / Math.PI);

这里有一篇关于css矩阵的好文章http://dev.opera.com/articles/view/understanding-the-css-transforms-matrix/ - 但我发现的最好的解释是Senocular的这个(甚至虽然它是关于Flash的,但基本数学是相同的):http://www.senocular.com/flash/tutorials/transformmatrix/

rotate(deg)语法正是为底层矩阵变换的简写.我不确定为什么FF接受一种格式,但报告另一种格式.

有关转换的更多信息:http://www.w3.org/TR/2012/WD-css3-transforms-20120911/