Вопрос

Недавно я сделал небольшой фрагмент jQuery, который позволяет мне показать загрузочную IMG, пока реальное изображение не будет загружено.

Фрагмент, кажется, работает в Safari, Chrome, но не Firefox.

Firefox отображает только loading Alt и никогда не включается на загруженный образ.

Вот фрагмент

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();
    });

Любые идеи почему?

Это было полезно?

Решение

Вы не сказали, что именно происходит на FF, но ниже может быть одной из проблем. От Документация jQuery

Возможно, что событие нагрузки не будет запущено, если изображение загружено из кэша браузера. Для учета этой возможности мы можем использовать специальное событие нагрузки, которое сразу же загорается, если изображение будет готово. Event.special.Load в настоящее время доступна как плагин.

Вот то связь для плагина.

Редактировать:

Основываясь на комментариях от события нагрузки, попробуйте ниже:

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

Конечно, плагин, кажется, делает то же самое наряду с обработкой некоторых других сценариев, а также.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top