Frage

Ich habe vor kurzem einen kleinen jQuery-Snippet, das mir einen Laden img zeigen kann, bis das reale Bild geladen wird.

Das Snippet scheint zu funktionieren in Safari, Chrome, aber nicht FireFox.

FireFox zeigt nur eine loading alt und nie schaltet auf das geladene Bild.

Hier ist das Snippet

var loading = $('<img src="/media/ajax-loader.gif" alt="loading" />');
    $('.thumbnail').each(function(){
        var loadIMG = loading.clone();
            $(this).after(loadIMG).load(function(){
                $(this).fadeIn('fast');
                loadIMG.hide();
        }).hide();
    });

Irgendwelche Ideen, warum?

War es hilfreich?

Lösung

Sie haben nicht gesagt, was genau auf FF ist happing aber unten kann man das Problem sein. Aus jquery Dokumentation

Es ist möglich, dass das Ladeereignis wird nicht ausgelöst werden, wenn das Bild aus dem Browser-Cache geladen. Zu diese Möglichkeit berücksichtigen, können wir verwendet ein spezielles Ladeereignis, das ausgelöst werden sofort, wenn das Bild fertig ist. event.special.load ist derzeit verfügbar als Plugin.

Hier ist der Link Plugin.

Edit:

Basierend auf Kommentare von Load-Ereignis, versuchen Sie unter:

$('.thumbnail').each(function(){
        var loadIMG = loading.clone();
            $(this).after(loadIMG).load(function(){
                $(this).fadeIn('fast');
                loadIMG.hide();
        }).hide();
        if (this.complete) $(this).trigger("load");
});

Natürlich ist die Plug-in scheint Gleiche zu tun, zusammen mit einigen anderen Szenarien sowie der Handhabung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top