Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在internet explorer中加载内容后重新启动gif_Javascript_Jquery - Fatal编程技术网

Javascript 在internet explorer中加载内容后重新启动gif

Javascript 在internet explorer中加载内容后重新启动gif,javascript,jquery,Javascript,Jquery,我使用这段代码在其他内容之后加载gif,在加载gif之后播放css关键帧动画,并在css动画开始时重置gif $(window).load(function() { var img = document.createElement("img"); imageUrl = "deszcz_dl.gif?"+ new Date().getTime(); img.src = imageUrl; var doneTheStuff; var func=function

我使用这段代码在其他内容之后加载gif,在加载gif之后播放css关键帧动画,并在css动画开始时重置gif

$(window).load(function() {
    var img = document.createElement("img");
    imageUrl = "deszcz_dl.gif?"+ new Date().getTime();
    img.src = imageUrl;
    var doneTheStuff;
    var func=function(){
        if (!doneTheStuff) {
            doneTheStuff = true;
            console.log("hi");
            img.src = " ";
            img.src = imageUrl;
        }
        $("body").removeClass("preload");
        $("#layer1").removeClass("loading");
    }
    $('#layer1').html("<img class='deszczimg' src="+ img.src + " alt=''>");
    if(img.complete){ 
        func.call(img);
    }
    else{ 
        img.onload=func; 
    }
});
$(窗口).load(函数(){
var img=document.createElement(“img”);
imageUrl=“deszcz_dl.gif?”+新日期().getTime();
img.src=imageUrl;
var doneTheStuff;
var func=函数(){
如果(!doneTheStuff){
doneTheStuff=true;
控制台日志(“hi”);
img.src=“”;
img.src=imageUrl;
}
$(“body”).removeClass(“预加载”);
$(“#layer1”).removeClass(“加载”);
}
$('#layer1').html(“”);
如果(img.complete){
职能呼叫(img);
}
否则{
img.onload=func;
}
});
但它在IE 11中不起作用-gif不会重新启动。。。我不知道为什么。 在chrome和ff中工作良好


我不确定是否理解您的问题,但您可以尝试预加载gif,并仅在准备好后将其插入DOM

var loader = new Image()
loader.src = '' //path to gif
loader.onload = function () {
//use gif once it's ready
$('#layer1').replaceWith(loader)
}
另一种方法是删除图像元素,然后重新插入

$('#layer1 img').remove()
$('#layer1').append("<img src='" + pathToImage + '>")

我需要重新启动gif。隐藏加载gif后,我将在正确的时刻显示它,但应在此img.src=“”)重新启动它;img.src=imageUrl;为chrom工作您的第二种方法也适用于chrome,但它们不适用于IE11(gif未重新启动-只有最后一帧可见),我添加了第三个选项。在1分钟内检查我的修订答案。重新加载此$(“#layer1 img”).remove()$(“#layer1”).append(“”)适用于chrome,但不适用于IEG,但我需要重新启动gif而不需要重新加载它。重新加载时间太长。我添加了随机字符串以在页面刷新时重新加载它。但我需要重新启动已经加载的gif,以便与其他动画完美同步。它适用于chrome,但不适用于ie11I。我认为方法1、2和少量3的组合是有效的。谢谢
$('#layer1').append("<img src='" + pathToImage + '?' + Math.random()>")
 $('#layer1 img').attr('src', pathToImage);