【发布时间】:2010-12-20 16:33:39
【问题描述】:
我很确定这是一个老问题。
这就是我渲染动画 gif 的方式:
<img id='loading' alt='loading' style="display: none; position:
relative; left:10px; top:2px;" src="<%= Url.Image("loading.gif") %>" />
这就是我现在拼命想要展示的方式:
showLoading: function(gifId, butId) {
var n = gifId != undefined ? gifId : 'loading';
var l = $('#' + n);
//if browser is stupid
if ('v' == '\v') {
var s = l.attr('src');
var x = document.getElementById(n);
x.style.visibility = "visible";
x.style.display = "inline";
setTimeout("document.getElementById('" + n + "').src = '"+s+"';",
100);
} else {
l.show();
}
if (butId != undefined)
$('#' + butId).css('cursor', 'default').attr("disabled", true);
},
问题: 动画 gif 显示冻结,没有动画
最奇怪的是,在其他页面上,一切都像魅力一样。
附:不吐槽 IE 是很痛苦的……啊……
编辑:
用 span 环绕:
<span id='loading' style='display: none;
position: relative; left: 0px; top: 2px;'>
<img alt='loading' src="<%= Url.Image("loading.gif") %>" />
</span>
把js改成:
if ('v' == '\v') {
var f = function() {
l.show();
l.attr('src', l.attr('src'));
};
setTimeout(f, 100);
} else {
l.show();
}
而且很神秘 - 它现在可以工作了。
【问题讨论】:
-
你可以吐槽IE,没人会生气。我有同样的错误...通常 IE 并不喜欢 .src。如果我是你,我会用别的东西来做
-
Reseting src 是一个可以解决这个问题的 hack (ryantetek.com/2009/06/…)。不知何故,它没有。
-
不...我不应该为此大吵大闹。材料太多了。肯定会被禁言。 :D
标签: internet-explorer animated-gif