jQuery图像预加载在FireFox中第一次不起作用

我刚刚完成了一个简单的jQuery库,其中有一些淡入淡出的过渡,如here所示.所有浏览器都能正常工作 – 除了“图像预加载”在FireFox的第一次加载时不起作用(适用于所有其他浏览器).图像在Firefox中保持0%的不透明度.不知道为什么.

这是预加载代码.

$(document).ready(function(){
    //--------PRELOAD LOAD IMAGES--------\\
    $('img').load(function() {
        //once image has loaded fade in image
        $(this).animate({opacity : 1.0},1000);

        //kill padding on last thumbnail of each line
        $('#headshots img').eq(3).css({'padding-right' : '0'});
        $('#ports img').eq(3).css({'padding-right' : '0'});
        $('#ports img').eq(7).css({'padding-right' : '0'});
    });
});

在此先感谢您的帮助.

最佳答案
出于好奇,请尝试:

$(this).each(function() {
    $(this).animate({opacity : 1.0},1000);
});

为了使您的解决方案更加健壮,您应该考虑在浏览器缓存每个映像时强制为每个映像触发load事件,这可以防止它的load事件被触发.您可以通过测试.complete属性来执行此操作:

$('img').load(function() {
    $(this).each(function() {
        $(this).animate({opacity : 1.0},1000);
    });
    $('#headshots img').eq(3).css({'padding-right' : '0'});
    $('#ports img').eq(3).css({'padding-right' : '0'});
    $('#ports img').eq(7).css({'padding-right' : '0'});
}).each(function() {
    if(this.complete) $(this).trigger("load");
});

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...