2011-09-08 50 views
0

我用g.raphael繪製了線條圖。我用自己的價值定製了一個x軸。現在我想讓這些值旋轉90度,所以它們是垂直的而不是水平的。Firefox中的raphaëlrotate()錯誤

要做到這一點,我使用了raphaels rotate()函數。這在IE(8)和Opera中都可以很好地工作。但在Firefox沒有任何反應,和螢火蟲打印此錯誤

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

我在別處找不到有關這個錯誤什麼,我看不出它如何是不正確的。更有甚者,我發現它在其他瀏覽器中起作用是非常奇怪的。

有人有這方面的線索嗎?

我的代碼 - 在xcoor是值0-30的一個簡單的INT表:

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); 
} 
+0

找到了答案,但我在8小時後無法回答我自己的問題。明天就給它發郵件,以防其他人遇到問題! – DummeDitte

回答

0

好吧,谷歌搜索,閱讀和更多的谷歌搜索了幾個小時之後,我終於找到了解決辦法。

我仍然不明白爲什麼第一個不起作用。但無論如何,我想出了一種適用於所有瀏覽器的方式:

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) 

其中度數表示項目應該旋轉的度數,x,y表示項目應旋轉的點的座標。

將x,y值設置爲與將項目放在第一位的值相同時,會給我想要的結果。

耶!

+0

當你不明白爲什麼某些東西不能像它應該的那樣工作時,你難道不喜歡它嗎? –

+0

我也會把'(40 +(i *(725/30)))'賦值給一個變量,以避免計算兩次(儘管這個成本對繪製它的成本可能無關緊要。 –