【问题标题】:raphaël rotate() error in FirefoxFirefox 中的 raphaël rotate() 错误
【发布时间】:2011-11-12 20:38:59
【问题描述】:

我用 g.raphael 绘制了一个折线图。我用自己的值制作了一个自定义 x 轴。现在我想让这些值旋转 90 度,所以它们是垂直的而不是水平的。

为此,我使用了 raphaels rotate() 函数。这在 IE (8) 和 Opera 中都能完美运行。但是在 Firefox 中没有任何反应,并且 Firebug 会打印此错误

Unexpected value rotate(90 NaN Infinity) parsing transform attribute.

我在其他地方找不到任何关于此错误的信息,而且我看不出它是如何不正确的。更重要的是,我发现它在其他浏览器中工作非常奇怪。

有人知道这个吗?

我的代码 - 其中 xcoor 是一个简单的 int 值列表,包含 0-30:

for (var i in xcoor) {
     var dato = new Date();
     dato.setDate(new Date().getDate() - i);

     var xTxt = r.text(30 + (i * (725 / 30)), 315, dato.getDate() + '/' + (dato.getMonth() + 1)).rotate(90);
}

【问题讨论】:

  • 找到了答案,但我在询问后 8 小时内无法回答自己的问题。明天发布,以防其他人遇到问题!

标签: firefox raphael rotation nan infinity


【解决方案1】:

好吧,经过数小时的谷歌搜索、阅读和更多谷歌搜索,我终于找到了解决方案。

我仍然不明白为什么第一个不起作用。但我还是找到了一种适用于所有浏览器的方法:

for (var i in xcoor) {
     var dato = new Date();
     dato.setDate(new Date().getDate() - i);
     var xTxt = blokCanvas.text(40 + (i * (725 / 30)), 315, dato.getDate() + '/' + (dato.getMonth() + 1))
     xTxt.rotate(90, (40 + (i * (725 / 30))), 315);
}

旋转功能有更多不同的版本。其中之一是这个

rotate(degrees, x, y)

其中degrees表示项目应旋转的度数,x,y表示项目应围绕其旋转的点的坐标。

将 x,y 值设置为与将项目放在首位的值相同会给我想要的结果。

耶!

【讨论】:

  • 当您无法弄清楚为什么某些事情不能按应有的方式工作时,您难道不讨厌它吗?
  • 我还将(40 + (i * (725 / 30)))分配给一个变量以避免计算两次(尽管成本可能与绘制它的成本无关。
猜你喜欢
  • 2017-01-24
  • 1970-01-01
  • 1970-01-01
  • 2021-03-16
  • 2022-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多