2012-02-02 23 views
3

所以我有一個GIF動畫,我只想在用戶點擊一個提交按鈕時顯示,這種方式他們認爲發生了一些事情,如果它需要一段時間作爲迴應。我如何使IE 9在提交表單之前製作一個gif動畫

問題是在IE9 GIF不動畫。我嘗試過動態添加它,然後將它添加到頁面中,並且看起來都不起作用。我也嘗試在添加GIF之前添加延遲,但這也沒有幫助。

另外一件事,我相信這可能與執行POST的形式相對於GET請求(GET請求遇到此問題)相關,但是我需要執行GET,原因是我不想進入。

+0

試試這個http://www.norio.be/blog/2008/09/animated-gif-not- working-internet-explorer – coder 2012-02-02 19:56:18

+0

這在過去的IE版本中有效,但我發現它似乎不適用於IE9。特別是你有沒有成功使用IE9? – 2012-02-02 20:01:21

+0

我有一個類似的問題與IE9殺死圖像加載在Modals [模式對話框丟失圖像提交表單,IE9 +](http://stackoverflow.com/questions/16982505/modal-dialog-missing-image-on-form -submit-IE9)。我*相信*當表單被提交時,IE9殺死任何處理。假設這是一些錯位的效率的東西? – Liam 2013-08-09 14:40:56

回答

1

一旦你在頁面上提交一個表單,所有執行當前頁面的STOPS。您可以改用AJAX,或將表單發​​布到Iframe。

+1

是的,但它是一個動畫GIF動畫,它應該仍然可以動畫,直到它不再顯示,而不是顯示爲靜態圖像。這是所有其他瀏覽器所做的,甚至過去的IE版本都能夠這樣做 – 2012-02-02 19:58:21

1

不知道你的具體IE9的問題,但你可以嘗試的jQuery做這個:

$(function(){ 
    $('form#my-form').submit(function(e){ 
    $('#my-animating-gif').show(); 
    }); 
}; 

,只是做在與屬性style="display:none;"頁面加載DOM動畫GIF(或隱藏類和正確的CSS在你的樣式表)

如果這不能做的伎倆,你可以看看你是否可以阻止常規表單提交,並在你顯示gif後自己做......但我很確定這樣做是與以前的版本相同。值得一試我猜。

$(function(){ 
    $('form#my-form').submit(function(e){ 
    e.preventDefault(); 
    $('#my-animating-gif').show(); 
    $(this).submit(); // <-- This might cause infinite recursion 
         // into this event handler. Probably a 
         // terrible idea. Go with the above version, 
         // or serialize the form data yourself and submit 
         // it as a separate form but that's outside 
         // of the scope of this answer. 
    }); 
}; 
+0

我知道如何添加它,問題是IE9特定的。 – 2012-02-02 20:12:17

+0

你有沒有一個你嘗試過的工作示例或代碼示例?當我們不確定你到目前爲止嘗試過什麼時,很難給出很好的答案。 – nzifnab 2012-02-02 20:13:58

+0

我說了我在我的問題中試過的。 – 2012-02-02 20:23:50

0

這對每個IE版本都有問題。不幸的是,大多數舊的解決方法都不適用於IE9。還有一個問題是spin.js,如果你確定只有javascript的解決方案。它非常簡單並且沒有依賴關係(儘管如果你需要的話,它有一個jQuery插件)。基本語法是:

HTML:

<div id="spinner" style="width:24px; height:24px"></div> 

JS:

var opts = { 
    lines: 12, 
    length: 7, 
    width: 4, 
    radius: 12, 
    color: '#000', 
    speed: 1, 
    trail: 54 
}; 
var target = document.getElementById('spinner'); 
var spinner = new Spinner(opts).spin(target); 
相關問題