2009-12-29 3 views

Répondre

38

Vous pouvez utiliser la méthode getBBox() de l'objet SVGElement. Il vous indique la largeur et la hauteur, le décalage x et y en pixels sans tenir compte de la mise à l'échelle de l'élément.

document.getElementById('myelem').getBBox().width 
document.getElementById('myelem').getBBox().height 

est ce que vous cherchez, je pense.

EDIT:

  1. J'ai récemment aussi appris que les getBoundingClientRect() peu connus fonctionne aussi bien! Vous pouvez également faire: var el = document.getElementById('myelem'); var mywidth = el.getBoundingClientRect().width;

  2. Gardez à l'esprit qu'il existe une différence entre getBBox et getBoundingClientRect. getBBox obtient les dimensions initiales - getBoundingClientRect respecte également les transformations fait avec l'échelle, etc.

+1

+1 pour l'édition. –

+5

'getBBox' renvoie' {[..], width: 0, height: 0} 'ainsi que' getBoundingClientRect'. Ce dernier ne fonctionne pas seulement dans FireFox. – Gajus

+0

Ne pas envelopper votre élément avec jQuery (comme $ (yourElement)), comme getBBox n'est pas une fonction alors. – Cedric

-3

Les fichiers SVG sont évolutifs graphiques vectoriels, et peuvent donc avoir n'importe quelle hauteur et largeur arbitraires. Seul le ratio est fixé par le format.

+0

Merci beaucoup, je sais, mais dans le widget SVG viever je fais (http://my.opera.com /SpShut/blog/show.dml/5803641) J'ai besoin d'afficher les vignettes des fichiers SVG (disons 100x100), et si un fichier n'a ni attributs width/height ni viewBox, il est affiché à * une certaine taille * et seulement une partie 100x100 est visible. Je veux traiter le fichier en quelque sorte pour obtenir les dimensions et définir les attributs width/height et viewBox. –

+0

Vous devrez alors faire une supposition à ce sujet. Si vos pouces sont 100x100 alors pourquoi ne pas afficher le SVG à 100x100? – jball

+0

Je mets et si le fichier.svg n'a pas de largeur & height & viewBox seulement 100x100 partie si elle est affichée. Je veux déterminer la taille des graphiques, définir les attributs et réécrire le fichier sur le disque, donc une hypothèse ne fera pas. Des idees pour faire cela? –

Questions connexes