Manchmal dauert es einige Zeit, Bilder im Browser zu rendern. Ich möchte ein aktives Bild anzeigen, während das aktuelle Bild heruntergeladen wird, und wenn das Bild heruntergeladen wird, wird das aktive Bild entfernt und das tatsächliche Bild sollte angezeigt werden. Wie kann ich das mit JQuery oder irgendeinem Javascript tun?Wie wird das Ladebild angezeigt, während das aktuelle Bild heruntergeladen wird?
Antwort
Sie können etwas tun:
// show loading image
$('#loader_img').show();
// main image loaded ?
$('#main_img').on('load', function(){
// hide/remove the loading image
$('#loader_img').hide();
});
Sie ordnen load
Ereignis in das Bild, das ausgelöst wird, wenn die Bild fertig geladen ist. Zuvor können Sie Ihr Loader-Image anzeigen.
Fügen Sie einfach ein Hintergrundbild für alle Bilder mit CSS:
img {
background: url('loading.gif') no-repeat;
}
Das funktioniert gut. – Swar
Danke, es hat geholfen. –
Es sollte in ADF-Anwendungen helfen, in denen die JavaScript-Ausführung aufgrund eines teilweisen Seitenrenderings nicht deterministisch ist. Ich werde es sicher versuchen :-). –
Ich verwende eine ähnliche Technik, was @Sarfraz geschrieben, außer stattdessen Elemente versteckt, ich manipulieren nur die Klasse des Bildes, das ich m Laden.
<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>
In meinem Fall, manchmal Bilder werden nicht geladen, so dass ich das handhaben onerror Ereignis die Bildklasse zu ändern, damit es einen Fehler Hintergrundbild zeigt (anstelle des gebrochenen Bild Symbol des Browsers).
Das ist anders - du lädst das Bild _außerhalb_ der Seiten-DOM und verschiebst es dann auf das 'img'-Element aus dem Browser-Cache. Die Methode funktioniert möglicherweise nicht, wenn das Bild eine Art HTTP-Antwortheader _no caching_ enthält. – Edward
Verwenden Sie einen JavaScript-Konstruktor mit einem Rückruf, der ausgelöst wird, wenn das Bild im Hintergrund geladen wurde. Ich benutze es einfach und funktioniert super für mich Cross-Browser. Hier ist die thread with the answer.
Statt nur von diese zitierte Methode tun https://stackoverflow.com/a/4635440/3787376,
Sie etwas tun können:
// show loading image $('#loader_img').show(); // main image loaded ? $('#main_img').on('load', function(){ // hide/remove the loading image $('#loader_img').hide(); });
Sie ordnen
load
Ereignis in das Bild, das ausgelöst wird, wenn die Bild fertig geladen hat . Zuvor können Sie Ihr Loader-Image anzeigen.
Sie eine andere jQuery-Funktion verwenden können, um das Laden Bild abklingen zu machen, dann versteckt werden:
// 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.
});
„Sobald die Opazität 0 erreicht, wird die Anzeigestil Eigenschaft auf none gesetzt. " http://api.jquery.com/fadeOut/
Oder Sie könnten nicht die jQuery-Bibliothek verwenden, da es bereits einfache Cross-Browser JavaScript-Methoden.
- 1. Wie wird das Bild angezeigt?
- 2. Wie wird das Woocommerce Category Bild angezeigt?
- 3. Das Bild wird nicht angezeigt
- 4. Wie wird das Bild in RSS angezeigt?
- 5. Wie ein Ladebild auf Android-Handy korrekt angezeigt wird
- 6. Wie wird das Service Fabric-Zertifikat heruntergeladen?
- 7. Wie wird das aktuelle Textdatum oder die Wochennummer angezeigt?
- 8. Das Bild wird bei Safari 7/8/9 nicht angezeigt.
- 9. Rubygems - wo wird das Paket heruntergeladen?
- 10. Platzhalterhintergrund/-bild, während auf das vollständige Bild geladen wird?
- 11. UITabbarItem: - Das heruntergeladene Bild wird nicht im Tabbar-Element angezeigt.
- 12. UIDatePicker erkennt nicht, dass aktuell das aktuelle Datum angezeigt wird.
- 13. Wie wird das hochgeladene Bild in der asp.net-Anwendung angezeigt?
- 14. Wie wird das Bild anstelle der Checkbox angezeigt?
- 15. Wie wird das Bild in Python richtig angezeigt?
- 16. Concrete5: Wie wird das Retina-Bild durch den Bildblock angezeigt?
- 17. Wie wird das Bild in einer bestimmten Zeit angezeigt?
- 18. Das Bild wird verkleinert verkleinert
- 19. das aktuelle Bild teilen viewflipper
- 20. Javascript-Overlay: Warum wird das Overlay nicht angezeigt, wenn auf das Bild geklickt wird?
- 21. Führe etwas aus, während das Element angezeigt wird
- 22. Halten Sie DROP_DOWN ToolItem hervorgehoben, während das Menü angezeigt wird
- 23. Unterbrechen der QR-Code-Erkennung, während das Dialogfeld angezeigt wird
- 24. Wie wird das Suchergebnis in jtable angezeigt?
- 25. Wie wird das Layout der Kinderaktivität angezeigt?
- 26. Wie wird das OnContextItemSelected-Ereignis angezeigt?
- 27. Das erstellte Image wird nicht angezeigt.
- 28. Das Bild wird nicht in einer Schleife angezeigt, warum nicht?
- 29. Keep div Höhe, während das Bild geladen wird
- 30. Wie wird das Besitzerfenster minimiert, wenn ein Modal angezeigt wird?
Ich habe auch diese Technik verwendet und es funktioniert wirklich gut. Denken Sie daran, den Fehler zu behandeln und Fälle abzubrechen ... – will
@will, wie man mit Fehlern umgeht? – Michelle
@WearetheWorld Add Handler für das Fehlerereignis. Sie können etwas wie '$ (img) .load (handler) .error (handler)' tun. @see http://api.jquery.com/error/. –