我有比這裏同樣的問題的工作。SVG旋轉不使用jQuery ATTR()
下面是我使用的代碼:
var text = document.createElement("text");
var dayLabel = document.createTextNode("test");
$(text).attr("transform", "rotate(30 0 0)");
$(text).append(dayLabel);
$(svg).append(text);
我不明白的是,當我看向DOM樹(與Safari的元素檢查員)我看到的元素具有transform="rotate(90 0 0)"
集,但輪換似乎失敗了。
我的jQuery的文件是最新的(1.7.1),我教的代碼包含在一個「類」,這是在這個代碼塊實例:
$(document).ready(function() { ... right here ... });
...所以它僅在DOM準備就緒時執行。
而且,不知道這是否可以幫助,但...
這段代碼的工作原理:
$("#schedule").append('<svg id="test2" xmlns="http://www.w3.org/2000/svg" version="1.1"><text transform="rotate(30 0 0)">blabla</text></svg>');
...但是這一個不會:
$("#schedule").append('<svg id="test1" xmlns="http://www.w3.org/2000/svg" version="1.1"></svg>');
$("#test1").append('<text transform="rotate(30 0 0)">blabla</text>');
基本上,它是相同的代碼,但分別在1步和2步。在這兩種情況下,Safari的DOM檢查器仍然顯示相同的內容,即<text transform="rotate(30 0 0)">blabla</text>
,但在第二種情況下,該元素不會顯示在頁面中。
您應該在SVG命名空間(即使用document.createElementNS(...,'text')`)創建SVG節點(例如'`)。 –
Phrogz
2011-12-14 00:54:57