我最近做了一个小的jQuery片段,使我可以显示一个加载IMG,直到加载真实图像为止。

该片段似乎在Safari,Chrome但不起作用。

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