Raphael js获得元素的轮换

时间:2013-05-05 01:28:48

标签: get rotation raphael element

有没有办法使用raphaeljs库获取元素旋转值?我确定有,但我在文档中的任何地方都找不到它。我想它会像这样.attr('rotation'),但这不起作用。

2 个答案:

答案 0 :(得分:3)

使用Element.transform()函数获取当前转换数据并进行设置。

您可能已经知道element.transform(tstring)设置了转换数据,包括旋转。

要从Raphael获取数据,只需拨打element.transform(),无需任何参数:

tstring = element.transform();`

希望有所帮助。

答案 1 :(得分:3)

以下是我发现获得Raphaël元素旋转值的四种方法:

console.log(el.attr('transform')[0][1]);
console.log(el.transform()[0][1]);
console.log(el.matrix.split().rotate);
console.log(el.matrix.toTransformString().split('r')[1]);

具体输出因先前应用的转换而异。

  • 如果尚未应用转换,前两个将抛出'无法读取未定义的属性'错误,第二个将记录-0,第四个将记录undefined

  • 如果已经应用了介于-90°和269.999°(含)之间的上一次转换,那么所有四个转换都会记录该转换(尽管第三个将关闭几位小数,第四个将跟随{{ 1}})。

  • 如果已经应用了上述范围之外的上一个变换,则前两个记录完成转换,后两个记录相对于且小于360°的值(并且第三个将关闭几位小数,第四位将跟随0,0)。

  • 如果对元素应用了多个转换,则会将这些转换推送到前两个访问的数组上,因此需要相应地调整第一个括号 - 符号索引(或者它只会记录应用第一次旋转,而不是所有旋转的总和)。

DOCS:

http://raphaeljs.com/reference.html#Element.attr

http://raphaeljs.com/reference.html#Element.transform

http://raphaeljs.com/reference.html#Matrix.split

相关问题