Wie erhält man die Abmessungen eines Elements svg
?Breite/Höhe des SVG-Elements
http://jsfiddle.net/langdonx/Xkv3X/
Chrom 28:
style x
client 300x100
offset 300x100
IE 10:
stylex
client300x100
offsetundefinedxundefined
FireFox 23:
Es sind Breite und Höhe Eigenschaften auf svg1
, aber .width.baseVal.value
wird nur gesetzt, wenn ich die Attribute width und height für das Element festlege.
Die Geige sieht wie folgt aus:
HTML
<svg id="svg1" xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="1" fill="red" />
<circle cx="150" cy="50" r="40" stroke="black" stroke-width="1" fill="green" />
<circle cx="250" cy="50" r="40" stroke="black" stroke-width="1" fill="blue" />
</svg>
JS
var svg1 = document.getElementById('svg1');
console.log(svg1);
console.log('style', svg1.style.width + 'x' + svg1.style.height);
console.log('client', svg1.clientWidth + 'x' + svg1.clientHeight);
console.log('offset', svg1.offsetWidth + 'x' + svg1.offsetHeight);
CSS
#svg1 {
width: 300px;
height: 100px;
}
Gibt es keine Möglichkeit, es wie ein HTML-Element zu behandeln und die tatsächliche Größe zu erhalten, die das 'svg'-Element belegt, obwohl es gezeichnet wurde? http://jsfiddle.net/Xkv3X/4/ – Langdon
Btw, ich versuche, die Größe der Leinwand zu bestimmen, die ich vor dem Rendern von Formen zeichnen kann. – Langdon
Ich denke, es wäre besser, die verfügbare Größe des Containers zu überprüfen (das Div, das Ihre Svg enthält), dann können Sie entsprechende Größe für Sie festlegen Svg –