【问题标题】:Jquery img preload not working in FireFoxJquery img 预加载在 FireFox 中不起作用
【发布时间】:2010-09-21 07:24:59
【问题描述】:

我最近做了一个小的 jQuery sn-p,它允许我显示一个正在加载的 img,直到真正的图像被加载。

sn-p 似乎适用于 Safari、Chrome 但不适用于 FireFox。

FireFox 只显示一个loading alt 并且从不切换到加载的图像。

这里是sn-p

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

有什么想法吗?

【问题讨论】:

  • 你是在准备好方法了吗?
  • 我是的,$(document).ready(function(){ ... });

标签: jquery-effects jquery jquery-load


【解决方案1】:

你还没有说 FF 到底发生了什么,但下面可能是问题之一。来自jquery documentation

可能是加载事件 如果图像是不会触发的 从浏览器缓存加载。到 考虑到这种可能性,我们可以 使用触发的特殊加载事件 如果图像准备好了,立即。 event.special.load 当前是 可作为插件使用。

这是插件的link

编辑:

根据加载事件中的 cmets,尝试以下操作:

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

当然,插件似乎在处理其他一些场景的同时也在做同样的事情。

【讨论】:

  • 谢谢,我只是修改了原文,它永远不会从 alt 切换到加载的图像。
  • @ApPeL,上面可能是问题 - 除非图像上没有触发加载,否则您将看不到加载的图像。试试上面的插件,看看它是否有效。
  • 上述插件导致我所有其他 jQuery 的东西都不起作用。
  • @ApPel,插件似乎很简单。也许,您可以自己尝试类似的代码 - 我已经编辑了答案以列出代码。
猜你喜欢
  • 1970-01-01
  • 2014-06-01
  • 2020-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-25
相关资源
最近更新 更多