Quando si utilizza la nuova funzione CSS object-fit
, come posso accedere alle dimensioni risultanti scelte dal browser da JavaScript?object-fit: ottieni le dimensioni risultanti
Quindi supponiamo che foo.jpg
sia 100x200 pixel. La pagina del browser/viewport è larga 400 px e alta 300 px. Poi dato questo codice CSS:
img.foo {
width: 100%;
height: 100%;
object-fit: contain;
object-position: 25% 0;
}
Il browser ora mostrare l'immagine sulla parte superiore con la corretta razione aspetto estende fino in fondo sul secondo quarto da sinistra. Ciò si traduce in quelle dimensioni immagine:
- width: 150px
- altezza: 300px
- sinistra: 62.5px
- destra: 212.5px
Quindi cosa chiamata JavaScript (jQuery consentito) mi darebbe quei numeri che ho calcolato manualmente? (Nota: le informazioni CSS stessi non sono conosciuti dalla JavaScript come l'utente li potrebbe sovrascrivere e persino aggiungere cose come min-width
)
di giocare con il codice che ho creato un violino: https://jsfiddle.net/sydeo244/
se si utilizza '$ ('img.foo'). outerWidth()' si otterrà la larghezza calcolata totale degli elemen t. Non chiaro cosa stai chiedendo –
No, 'outerWidth()' non funziona in questo caso poiché determinerà la larghezza dell'immagine "piena" - quindi restituire '400' a causa della larghezza': 100% 'e non' 150 'come desiderato. – Chris
Non c'è una proprietà speciale che ti dia quel valore, devi usare la dimensione generata dell'elemento 'img' e quindi usare le proprietà' NaturalWidth'/'NaturalHeight' per ottenere le sue proporzioni e quindi calcolare il suo rendering dimensione (praticamente lo stesso che hai fatto manualmente). – LGSon