Ho un elemento img nel mio DOM. Sulla base dell'azione dell'utente, computo un URL per un'immagine e cambio l'attributo src dell'elemento dell'immagine (usando jQuery). La nuova immagine ha una dimensione diversa dalla vecchia immagine. Questo funziona bene su Safari, ma IE non ridimensiona il display per le dimensioni della nuova immagine. Ho un gestore di .load sul cambiamento di src (nel quale apporto alcune modifiche alla classe dell'elemento img) ... se sapessi come accedere alle dimensioni reali dell'immagine, potrei impostare le proprietà di altezza e larghezza degli elementi img. Quei valori sono accessibili da qualche parte in qualche modo? In caso contrario, c'è un altro modo per avere l'immagine visualizzata nelle sue nuove dimensioni?La modifica della sorgente di un tag immagine (img) non viene ridimensionata su IE
risposta
vorrei studiare altre soluzioni, ma si può infatti accedere a queste informazioni direttamente
var myImage = new Image();
myImage.src = $("image selector goes here").attr('src');
myImage.onload = function() {
alert(myImage.width + "," + myImage.height);
}
Ho avuto lo stesso problema, ma questo ha preso cura di esso.
$("#img").removeAttr("height").removeAttr("width").attr("src", newsrc);
Non vedo come funzionerebbe. Correggimi se sbaglio, ma da quello che posso vedere in altezza e larghezza non sono attributi DOM, tuttavia lo stile è. Rimozione di "stile" funziona in Chrome, vedere la mia risposta. – tronbabylove
sto lavorando in Chrome, non IE, ma ho avuto lo stesso problema e ho pensato condividere per chiunque altro che si imbatte in questa domanda. Ho risolto questo rimuovendo l'attributo "stile" della immagine prima di cambiare la sorgente, cioè .:
myImg.removeAttribute ('stile') setAttribute ('src', newsrc).;
funziona come un fascino. –
- 1. Carica immagine in un tag img
- 2. setAttribute e video.src per la modifica della sorgente di tag video non funzionante in IE9
- 3. Div con sfondi immagine e tag img
- 4. Immagine errore ridimensionata parametro non supportato
- 5. Bootstrap Immagine Responsive incasinato su IE
- 6. Come fermare immagine restringimento quando la pagina viene ridimensionata orizzontalmente in CSS
- 7. 9 l'immagine della patch viene ridimensionata nelle posizioni errate
- 8. Descrizione di un "tag img" all'interno di un "tag"
- 9. onerror <img> l'attributo tag viene sempre attivato in IE, perché?
- 10. domanda semplice su tag html img
- 11. Modifica IMG SRC con Javascript
- 12. FF e IE non vengono caricati img src dal CSS
- 13. BoxShadow: inserto sul tag img
- 14. Ridimensiona automaticamente la riga TableLayoutPanel quando la finestra viene ridimensionata
- 15. Utilizzo di .ico nel tag img
- 16. Modifica URL sorgente su $ includeContentRequested
- 17. JavaScript che seleziona l'immagine su un tag img
- 18. Spaziatura aggiuntiva dopo un tag A tag/img?
- 19. Chrome non visualizza il video HTML5 finché la pagina non viene ridimensionata
- 20. Angular.js - Filtro nel tag img src
- 21. Chrome non rendering SVG referenziato tramite <img> tag
- 22. Immagine mappa non funziona in IE
- 23. immagine all'interno tag link
- 24. PHP split o esplode stringa su <img> tag
- 25. Reagire problema tag img con url e la classe
- 26. come aggiungo una data di scadenza a un tag img?
- 27. img onload non funziona bene in IE7
- 28. Perché React.js rimuove il tag srcset su <img />?
- 29. onclick sul tag opzione non funziona su IE e Chrome
- 30. tag wbr non funziona in IE
Grazie per il suggerimento, ma purtroppo quando * cambiamento * src e dell'immagine caricare un'immagine di un nuovo formato, l'elemento img segnala ancora la larghezza e l'altezza iniziale, non l'immagine appena caricato (sul IE, cioè, come ho detto, l'immagine viene ridimensionata da Safari). – Zhami
Prova a caricare l'immagine con url direttamente rispetto al metodo 'attr ('src')'. Quindi qualcosa come 'myImage.src =" http://example.com/awesome.gif "quindi controlla la larghezza. Non riesco a vedere come questo potrebbe riportare la stessa larghezza, dal momento che dovrebbe esserne inconsapevole. Questo è un po 'di dolore dal momento che invia due richieste al tuo server per l'immagine, ma non dovrebbe essere un problema se c'è il caching. –
Il mio sospetto è che il motore di rendering abbia layout con la prima immagine. I carichi dell'immagine successiva non forzano il relayout. Ho riscritto il mio intero approccio per evitare questo problema. – Zhami