Quindi, come ottenere la dimensione di un file SVG con javascript quando larghezza e altezza non sono impostati sull'elemento svg? Lo svg è una stringa, ma potrebbe essere creato un DOM se necessario.Ottieni dimensioni grafiche svg quando gli attributi larghezza/altezza su <svg> non sono impostati
Ottieni dimensioni grafiche svg quando gli attributi larghezza/altezza su <svg> non sono impostati
risposta
È 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:
Recentemente ho anche imparato che le piccole note
getBoundingClientRect()
funziona così! Puoi anche fare:var el = document.getElementById('myelem'); var mywidth = el.getBoundingClientRect().width;
Ricorda che c'è una differenza tra getBBox e getBoundingClientRect. getBBox ottiene le dimensioni iniziali - getBoundingClientRect rispetta anche le trasformazioni fatto con scala ecc
SVG sono scalabile grafica vettoriale, e quindi può avere qualsiasi altezza e larghezza arbitrarie. Solo il rapporto è fissato dal formato.
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. –
Allora dovrai fare una supposizione. Se i pollici sono 100x100, perché non visualizzare SVG a 100x100? – jball
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? –
- 1. Quando i crosspath sono impostati su true?
- 2. Come limitare gli eventi di modifica del numero quando sono impostati più attributi?
- 3. Wrapper su API grafiche
- 4. perché la classe 'oggetto' non ha attributi impostati dall'utente
- 5. Gli attributi personalizzati per Enum sono pericolosi?
- 6. Gli attributi personalizzati sono OK in XHTML
- 7. I limiti di UIView personalizzati non sono corretti durante il periodo di svegliFromNib - quando vengono impostati?
- 8. Imposta gli attributi di richiesta quando viene inviato un modulo
- 9. Gli attributi di metamodello dichiarati funzionano bene MA Gli attributi di Metamodel ereditati sono NULL. Perché?
- 10. Gli eventi personalizzati devono essere impostati su null quando si smaltisce un oggetto?
- 11. jquery animate per gli attributi degli elementi non in stile
- 12. php SoapVar non imposta gli attributi
- 13. Perché $ _SERVER ["PHP_AUTH_USER"] e $ _SERVER ["PHP_AUTH_PW"] non sono impostati?
- 14. Come passare gli attributi <option> per selezionare2?
- 15. Mantenere gli attributi personalizzati quando si sostituisce il testo attribuito su UITextView
- 16. SVG <image> qualità rendering elemento
- 17. È possibile impostare gli attributi personalizzati degli oggetti SVG come numero e non come stringa?
- 18. org.hibernate.QueryException: non sono stati impostati tutti i parametri denominati: []
- 19. Ottieni dimensioni delle dimensioni nell'array
- 20. Attributi che non sono identificatori Python validi
- 21. Ottieni gli attributi del tema a livello di codice
- 22. Ottieni gli attributi del tag di inclusione nella stringa HTML
- 23. Impostare gli attributi di accessibilità su UIBarButtonItem
- 24. Come definire gli attributi su forms.ModelChoiceField?
- 25. OpenCL 2.0 su nVIDIA Schede grafiche
- 26. Arresto commento presentazione se i campi non sono impostati
- 27. Ottieni coordinate assolute per la rotazione degli elementi Inkscape SVG
- 28. Che cosa sono gli editor SVG minuscoli o di base?
- 29. Android grafiche Internals
- 30. Come posso evitare che gli attributi di sola lettura di Perl Moose vengano impostati su una chiamata a nuovo?
+1 per la modifica. –
'getBBox' restituisce' {[..], larghezza: 0, altezza: 0} 'così fa' getBoundingClientRect'. Quest'ultimo non funziona solo in FireFox. – Gajus
Non avvolgere il tuo elemento con jQuery (come $ (yourElement)), dato che getBBox non è una funzione allora. – Cedric