我有一次使用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