1

更新:我想通了。加载 gif 图像的路径出错。当涉及到这一点时,其他浏览器更加宽容......

我似乎在预加载图像时遇到了问题。

我有一个预加载器脚本,它可以在 IE 以外的所有浏览器中正常工作。它似乎只是在加载动画部分卡住了。

有人可以指出缺少/错误的地方吗?

谢谢!

// JavaScript Document
$.fn.preloader = function(options){

    var defaults = {
        delay:200,
        preload_parent:"a",
        check_timer:300,
        ondone:function(){ },
        oneachload:function(image){},
        fadein:500 
    };

    // variables declaration and precaching images and parent container
    var options = $.extend(defaults, options),
    root = $(this) , images = root.find("img").css({
        "visibility":"hidden",
        opacity:0
    }) ,  timer ,  counter = 0, i=0 , checkFlag = [] , delaySum = options.delay ,
    caseStudies =root.find('.case-study .tab').css({
        "display":"none"
    }) ,

    init = function(){
        timer = setInterval(function(){

            if(counter>=checkFlag.length)
            {
                clearInterval(timer);
                options.ondone();
                return;
            }

            for(i=0;i<images.length;i++)
            {

                if(images[i].complete==true)
                {
                    if(checkFlag[i]==false)
                    {
                        checkFlag[i] = true;
                        options.oneachload(images[i]);
                        counter++;

                        delaySum = delaySum + options.delay;
                    }

                    $(images[i]).css("visibility","visible").delay(delaySum).animate({
                        opacity:1
                    },options.fadein,
                    function(){
                        $(this).parent().removeClass("preloader");
                        if($(this).parent().parent().parent().hasClass('case-study')){
                            $(this).parent().parent().find('.tab').show('normal');
                            $(this).parent().parent().find('.tab').css({
                                'display':'block'
                            });
                        }

                    });
                }
            }

        },options.check_timer) 


    } ;

    images.each(function(){
        if($(this).parent(options.preload_parent).length==0)
            $(this).wrap("<a class='preloader' />");
        else
            $(this).parent().addClass("preloader");

        checkFlag[i++] = false;

    }); 
    images = $.makeArray(images);   
    var icon = jQuery("<img />",{

        id : 'loadingicon' ,
        src : location.href+'images/assets/loading_gif.gif'

    }).hide().appendTo("body");

    timer = setInterval(function(){

        if(icon[0].complete==true)
        {
            clearInterval(timer);
            init();
            icon.remove();
            return;
        }

    },100);

}
4

1 回答 1

0

加载 gif 图像的路径出错。其他浏览器在这方面更加宽容。

于 2021-04-16T20:03:54.300 回答