3

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

4

2 回答 2

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]);

特定输出因先前应用的转换而异。

  • 如果尚未应用任何转换,则前两个将抛出“无法读取未定义的属性”错误,第二个将 log -0,第四个将 log undefined

  • 如果之前应用了 -90° 和 269.999°(含)之间的转换,则所有四个都记录该转换(尽管第三个将偏移几位小数,第四个将紧随其后0,0)。

  • 如果应用了上述范围之外的先前转换,则前两个记录完成转换,后两个记录一个相对于 360° 且小于 360° 的值(同样,第三个将偏移几位小数,并且第四将紧随其后0,0)。

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

文档:

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

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

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

于 2014-09-26T17:18:46.857 回答
3

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

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

要从 Raphael 取回该数据,只需element.transform()不带任何参数调用:

tstring = element.transform();`

希望有帮助。

于 2013-05-05T07:29:07.510 回答