4

IEでアニメーションGIFを実行するのに苦労しています。他のすべてのブラウザで動作しますが、IEではフリーズします。私はこれを調査しましたが、setTimeoutを使用した遅延が機能する可能性があるようです。これを次の関数に追加する方法がよくわかりません。

<script type="text/javascript">

    $(function(){
        $('#photo_form').on("submit", function () {
        $('#loading').show();

    });

    });


</script>

gifは、非表示になっている「loading」と呼ばれるdiv内にあります。ボタンのonClickにタイムアウトを追加しますか、それとも関数自体にタイムアウトを追加しますか?

なぜIEは物事をそれほど難しくするのですか!?

この問題を解決するための助けは非常に役に立ちます。

4

2 に答える 2

2

このようなことを意味しますか?

$(function() {

    $('#photo_form').on("submit", function () {

        setTimeout(function () {

              $('#loading').show();

        }, 100);

    });
});
于 2012-12-27T21:02:45.450 に答える
1

テストされていないこの粗末な疑似コードを試してください。

var startTime;
var thread;

$(function(){
        $('#photo_form').on("submit", function () {
        $('#loading').show();
    startTime = time();
    thread = setInterval("showLoadingGif", 1);

    });

function showLoadingGif() {
    var timeToWait = 5; //change interval as needed
    if(timeToWait + startTime <= currentTime) {
        //show the gif
        clearInterval(thread);
    }
}

JavaScript を使用してから長い時間が経ちました。そのため、ほぼ確実に調整が必要です。ただし、原則は同じです。その関数を呼び出し続け、いつ呼び出されるのを停止するかをその関数に決定させます。

setTimeout() は、待機中にページをフリーズさせます。setInterval はコードを非同期で実行します。

于 2012-12-27T21:08:02.240 に答える