我有一次使用SVG獲取任何東西的bug,所以我推出了自己的小功能。希望它能幫助你。請注意,它僅適用於SVG元素。
function centerinparent(element) { //only works for SVG elements
var bbox = element.getBBox();
var parentwidth = element.parentNode.width.baseVal.value;
var parentheight = element.parentNode.height.baseVal.value;
var newwidth = ((parentwidth/2) - (bbox.width/2)) - 2; //i start everything off by 2 to account for line thickness
var newheight = ((parentheight/2) - (bbox.height/2)) - 2;
//need to adjust for line thickness??
if (element.classList.contains("textclass")) { //text is origined from bottom left, whereas everything else origin is top left
newheight += bbox.height; //move it down by its height
}
element.setAttributeNS(null, "transform", "translate(" + newwidth + "," + newheight + ")");
// console.log("centering BOXES: between width:"+element.parentNode.width.baseVal.value + " height:"+parentheight);
// console.log(bbox);
}
而且甚至沒有讓我開始對什麼是參與創造* *可編輯的文本... – jbeard4 2011-04-05 04:35:34
感謝您的答覆...但是ACK!看來,我將不得不轉儲svg。開發人員應該考慮的第一件事情之一是將文本(用戶希望的格式)附加到形狀上!我會等到他們一起行動起來,然後再做。我將嘗試在Windows Paint中重新繪製它,看看是否可以做到這一點。 (如果我只能讓瀏覽器正確顯示錶格)。 – 2011-04-05 06:44:16
關於svg中的可編輯文本,Opera支持SVG 1.2 Tiny中的editable屬性,它可以通過簡單添加一個屬性'editable =「true來獲得可編輯文本「'給text或textArea元素。 – 2011-04-05 07:16:03