Javascript 在internet explorer中加载内容后重新启动gif
我使用这段代码在其他内容之后加载gif,在加载gif之后播放css关键帧动画,并在css动画开始时重置gifJavascript 在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
$(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);