私はどうやってそれを取りましたか?オーバーレイがドキュメントに追加される時間に依存するようです。
説明: 画像がchromeとFFのDOMにonclickの間に追加された場合、私の待っているGIFは表示されませんが、IEに表示されます。私はそれがなぜIEで現れ、ffやクロムではないのか分からない。ポストバックの直前にDOMに追加されているという事実とは関係があります。
ページロード時に画像がDOMに追加されて画面がスライドするだけの場合は、ポストバック直前に適切な場所に移動するだけで、FFやChromeでは動作しますがIEでは動作しません。このようにすると、IEはGIFのアニメーションを停止します。
IE
で作品
function IeWaitOverlayObj() {
var _waitoverlay = null;
var _waitImage = null;
var _isHidden = true;
this.showOverlay = function() {
if (!_waitoverlay) {
_waitoverlay =
$('<div></div>')
.css({
zIndex: '9998',
backgroundColor: '#000000',
width: $(window).width(),
height: $(window).height(),
top: '0px',
left: '0px',
position: 'absolute',
opacity: '0.5'
});
var tag = '<img alt="pleaseWait" src="../Images/wait.gif" />';
_waitImage = $(tag).css({
zIndex: '9999',
position: 'absolute',
top: $(window).height()/2 - 75,
left: $(window).width()/2 - 200,
width: '400px',
height: '150px'
});
$('body').append(_waitoverlay);
$('body').append(_waitImage);
_isHidden = false;
}
};
this.hideOverlay = function() {
_waitoverlay.hide();
_isHidden = true;
};
this.OnWindowResize = function() {
if (!_isHidden) {
_waitoverlay.css({
width: $(window).width(),
height: $(window).height()
});
_waitImage.css({
top: $(window).height()/2 - 75,
left: $(window).width()/2 - 200
});
}
}
}
Chromeの作品とFF
function WaitOverlayObj() {
var _waitoverlay = $('<div></div>');
var _waitImage = $('<img alt="pleaseWait" src="../Images/wait.gif" />');
var _isHidden = true;
$('body').append(_waitoverlay);
$('body').append(_waitImage);
_waitoverlay.css({
zIndex: '9998',
backgroundColor: '#000000',
width: $(window).width(),
height: $(window).height(),
top: '0px',
left: $(window).width() * -1,
position: 'absolute',
opacity: '0.5'
});
_waitImage.css({
zIndex: '9999',
position: 'absolute',
top: '0px',
left: '-400px',
width: '400px',
height: '150px'
});
this.showOverlay = function() {
_waitImage.css({ top: $(window).height()/2 - 75, left: $(window).width()/2 - 200 });
_waitoverlay.css({ top: '0px', left: '0px' });
_isHidden = false;
};
this.hideOverlay = function() {
_waitImage.css({ top: '0px', left: '-400px' });
_waitoverlay.css({ top: '0px', left: $(window).width() * -1 });
_isHidden = true;
};
this.OnWindowResize = function() {
if (!_isHidden) {
_waitoverlay.css({
width: $(window).width(),
height: $(window).height()
});
_waitImage.css({
top: $(window).height()/2 - 75,
left: $(window).width()/2 - 200
});
}
}
}
そして、私のDocument.Ready
if (navigator.appName == "Microsoft Internet Explorer") {
wait = new IeWaitOverlayObj();
}
else{
wait = new WaitOverlayObj();
}
これをまだ確認しましたか? - http://stackoverflow.com/questions/780560/animated-gif-in-ie-stopping? – polarblau
一部のブラウザでは、GIFが動作中にフリーズします。 –
@ polarblau-ありがとう、私はここで提案されたものを試しましたhttp://stackoverflow.com/questions/780560/animated-gif-in-ie-stopping、しかし、GIFはまだ動作しません:( –