从matrix3d获取精确的旋转角度

时间:2014-06-03 10:54:45

标签: javascript css html5 css3 css-transforms

我有一些元素

<div id="element"></div>

使用旋转变换样式

-webkit-transform: rotateX(-1100deg);

有没有办法从计算样式中获得精确的(-1100)旋转角度?

window.getComputedStyle返回matrix3d。

var element = document.getElementById('element'),
    cs = getComputedStyle(element),
    matrix = new WebKitCSSMatrix(cs['-webkit-transform']);

但是如何从这个矩阵中检索旋转角度?

我需要计算样式,因为我试图在元素转换期间获得角度。

1 个答案:

答案 0 :(得分:2)

我找不到一个简单的方法,但在this article的帮助下,我设法得到了价值(种类)。

var myElement = document.getElementById('element');
var myTransform = window.getComputedStyle(myElement,null)
var myTransform = myTransform.getPropertyValue("-webkit-transform");
var myTransform = myTransform.split(' ');
var myX = myTransform[6].split(",")[0];
var angle = Math.round(Math.asin(myX) * (180/Math.PI));
console.log(angle);

返回-20,即-360 * 3 = -1080 +增加的20度旋转。 -20。评论中的一些人注意到,当角度高于180度且提供 a solution 时它不起作用,但它最多只能工作360度。

我认为如果使用javascript动态控制元素的转换会更容易,因为没有更简单的方法来获得轮换的getComputedStyle值。