2009-12-29 7 views

risposta

38

È possibile utilizzare il metodo getBBox() dell'oggetto SVGElement. Ti dice la larghezza e l'altezza, xe l'offset in pixel senza considerare il ridimensionamento dell'elemento.

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

sono quello che stai cercando, penso.

EDIT:

  1. Recentemente ho anche imparato che le piccole note getBoundingClientRect() funziona così! Puoi anche fare: var el = document.getElementById('myelem'); var mywidth = el.getBoundingClientRect().width;

  2. Ricorda che c'è una differenza tra getBBox e getBoundingClientRect. getBBox ottiene le dimensioni iniziali - getBoundingClientRect rispetta anche le trasformazioni fatto con scala ecc

+1

+1 per la modifica. –

+5

'getBBox' restituisce' {[..], larghezza: 0, altezza: 0} 'così fa' getBoundingClientRect'. Quest'ultimo non funziona solo in FireFox. – Gajus

+0

Non avvolgere il tuo elemento con jQuery (come $ (yourElement)), dato che getBBox non è una funzione allora. – Cedric

-3

SVG sono scalabile grafica vettoriale, e quindi può avere qualsiasi altezza e larghezza arbitrarie. Solo il rapporto è fissato dal formato.

+0

Grazie mille, lo so questo, ma nel widget SVG viever faccio (http://my.opera.com /SpShut/blog/show.dml/5803641) Ho bisogno di visualizzare le anteprime dei file SVG (diciamo 100x100), e se un file non ha né width/height né gli attributi viewBox, è visualizzato in * some size * e solo 100x100 porzione di esso è visibile. Voglio elaborare il file in qualche modo per ottenere le dimensioni e impostare larghezza/altezza e gli attributi viewBox. –

+0

Allora dovrai fare una supposizione. Se i pollici sono 100x100, perché non visualizzare SVG a 100x100? – jball

+0

Ho impostato e se il file.svg non ha width & height & viewBox solo 100x100 part se viene mostrato. Voglio determinare la dimensione della grafica, impostare gli attributi e riscrivere il file su disco, quindi un'ipotesi non funzionerà. Qualche idea su come fare questo? –

Problemi correlati