A volte le immagini richiedono del tempo per il rendering nel browser. Voglio mostrare un'immagine occupata mentre l'immagine reale è in fase di download, e quando l'immagine viene scaricata, l'immagine occupata viene rimossa e l'immagine reale deve essere mostrata. Come posso farlo con JQuery o qualsiasi javascript?Come visualizzare l'immagine di caricamento mentre viene scaricata l'immagine effettiva
risposta
si può fare qualcosa di simile:
// show loading image
$('#loader_img').show();
// main image loaded ?
$('#main_img').on('load', function(){
// hide/remove the loading image
$('#loader_img').hide();
});
si assegna load
evento all'immagine che spara quando l'immagine ha terminato il caricamento. Prima di ciò, è possibile mostrare l'immagine del caricatore.
Basta aggiungere un'immagine di sfondo a tutte le immagini usando i CSS:
img {
background: url('loading.gif') no-repeat;
}
Funziona bene. – Swar
Grazie, mi ha aiutato. –
Dovrebbe essere d'aiuto nelle applicazioni ADF dove l'esclusione di javascript è non deterministica a causa del rendering parziale della pagina. Darò una prova di sicuro :-). –
Io uso una tecnica simile a quello che ha postato @Sarfraz, tranne che invece di elementi nascondere, ho appena manipolare la classe dell'immagine che ho' m carico.
<style type="text/css">
.loading { background-image: url(loading.gif); }
.loaderror { background-image: url(loaderror.gif); }
</style>
...
<img id="image" class="loading" />
...
<script type="text/javascript">
var img = new Image();
img.onload = function() {
i = document.getElementById('image');
i.removeAttribute('class');
i.src = img.src;
};
img.onerror = function() {
document.getElementById('image').setAttribute('class', 'loaderror');
};
img.src = 'http://path/to/image.png';
</script>
Nel mio caso, a volte le immagini non vengono caricate, così ho gestire l'evento OnError per modificare la classe immagine in modo che visualizzi un'immagine di sfondo errore (piuttosto che l'icona immagine spezzata del browser).
Questo è diverso - stai caricando l'immagine al di fuori del DOM della pagina e poi spostandola sull'elemento 'img' dalla cache del browser. Il metodo potrebbe non funzionare se l'immagine ha una sorta di _no caching_ header di risposta HTTP. – Edward
Utilizzare un costruttore javascript con un callback che si attiva quando l'immagine ha terminato il caricamento in background. L'ho usato e funziona perfettamente per me cross-browser. Ecco lo thread with the answer.
Invece di fare solo questo metodo citato da https://stackoverflow.com/a/4635440/3787376,
si può fare qualcosa di simile:
// show loading image $('#loader_img').show(); // main image loaded ? $('#main_img').on('load', function(){ // hide/remove the loading image $('#loader_img').hide(); });
Si assegnano
load
evento all'immagine che spara quando l'immagine ha carico finito . Prima di ciò, è possibile mostrare l'immagine del caricatore.
è possibile utilizzare una funzione di jQuery diversa per rendere il caricamento delle immagini svaniscono, poi essere nascosti:
// Show the loading image.
$('#loader_img').show();
// When main image loads:
$('#main_img').on('load', function(){
// Fade out and hide the loading image.
$('#loader_img').fadeOut(100); // Time in milliseconds.
});
"Una volta che l'opacità raggiunge lo 0, la proprietà di stile di visualizzazione è impostata su Nessuno. " http://api.jquery.com/fadeOut/
O non era possibile utilizzare la libreria jQuery, perché ci sono già semplici metodi JavaScript cross-browser.
- 1. Come faccio a visualizzare qualcosa come "caricamento ..." mentre eseguo alcuni controlli sul caricamento del modulo?
- 2. Come posso vedere la richiesta reale effettiva che viene inviata
- 3. Come visualizzare il messaggio di caricamento quando viene caricato un iFrame?
- 4. Come visualizzare una finestra di dialogo di avanzamento mentre la pagina HTML viene caricata in WebView
- 5. Come visualizzare l'icona di caricamento quando viene eseguita la ricerca di completamento automatico?
- 6. utilizzando simplemodal, mostra lo spinner di caricamento mentre il contenuto all'interno di iframe viene caricato
- 7. Come visualizzare Div durante il caricamento con Pace.JS
- 8. Risoluzione mobile effettiva
- 9. Jersey: stampa la richiesta effettiva
- 10. come visualizzare l'anteprima di un'immagine prima e dopo il caricamento?
- 11. cURL: come visualizzare le informazioni di avanzamento durante il caricamento?
- 12. Ridimensiona l'altezza della cella tabella come da altezza dell'immagine scaricata
- 13. Caricamento di file video mentre l'app iOS è in background?
- 14. Come installare manualmente .box scaricata per Vagrant
- 15. come aggiungere l'estensione scaricata a yii 1.11?
- 16. Come visualizzare un messaggio "Caricamento in corso ... attendere" in Winforms per un lungo modulo di caricamento?
- 17. Visualizza loading image mentre $ .ajax viene eseguita
- 18. Objective-C NSMutableArray mutato mentre viene enumerato?
- 19. jQuery: effettiva larghezza div
- 20. WPF controllo dimensione effettiva
- 21. iPhone UIWebview - Salvataggio di un'immagine già scaricata
- 22. dove trovare la libreria scaricata di sbt?
- 23. Come interrompere UITableView dal caricamento fino al caricamento dei dati?
- 24. Segnaposto sfondo/immagine mentre si attende il caricamento completo dell'immagine?
- 25. Xcode è un'applicazione scaricata da Internet.
- 26. Mostra una barra di caricamento utilizzando jQuery mentre si effettua una richiesta AJAX
- 27. Quando conosciamo la larghezza effettiva di un elemento in Angolare?
- 28. Groovy rimuove l'elemento di raccolta mentre viene iterato
- 29. Come visualizzare quante volte viene visualizzato un elemento dell'array
- 30. Come ottenere la larghezza effettiva di un pop-up WPF
Ho anche usato questa tecnica e funziona davvero bene. Ricordati di gestire l'errore e di interrompere i casi ... – will
@ come gestire gli errori? – Michelle
@WearetheWorld aggiunge il gestore per l'evento di errore. puoi fare qualcosa come '$ (img) .load (handler) .error (handler)'. @see http://api.jquery.com/error/. –