2011-04-11 77 views
0

我再加上就將此一些HTML頁面的一些jQuery代碼一些jQueryUI的動畫。該html是基於來自JQuery Ajax調用的數據生成的。jQuery的動畫凍結在IE8

我想到了我的動畫凍結可能與Ajax調用,但是從下面的問題是說我想不是:

Why does my spinner GIF stop while jQuery ajax call is running?

我想我遇到的問題可能是但是上述問題爲行爲提供了理由,而不是解決方案。

有沒有人有解決方案?

+0

我應該有資格明白我的意思,當我說凍結,它會暫時凍結,然後在完成隱藏。在幻燈片中的某個任意點上,動畫會凍結一秒,然後div的剩餘部分將隱藏,而不會顯示動畫,然後第二個div只填充html,將不會出現問題。所以我很清楚第二個div的加載與第二個動畫的干涉。 – kralco626 2011-04-13 11:01:13

回答

0

所以我認爲有3個主要的「解決方案」這一問題;以及他們更多的解決方法。

  1. 可以刪除隱藏動畫。只需使用.hide(),然後在節目中使用一些動畫。
  2. 您可以使用隱藏動畫的回調方法來插入html並顯示新的div
  3. 您可以使用不同的瀏覽器。我只測試了ie8/firefox/chrome;但在這種情況下,我會建議使用chrome,因爲它能夠很好地完成這個任務非常棒。雖然我通常也會提出firefox,但是在這種情況下,這種情況並不比ie8好。

當然,我想還有第四個解決方案,就是處理它。

0

article可能是對你的幫助。

HTML元素的主要部分如下:

<span id='myHiddenDiv' style='display: none'> 
    <img src='' id='myAnimatedImage' align='absmiddle'> 
</span> 
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" OnClientClick="showDiv();" Text="Search" /> 

我們有一個隱藏的範圍(可以是一個div,如果你想在一個新行),在這個範圍內是我們的img標籤。接下來,在我們按鈕的OnClientClick處理程序中,我們稱之爲「showDiv();」客戶端腳本函數,它看起來像這樣:

<script language='javascript'> 
    function showDiv() 
    { 
    document.getElementById('myHiddenDiv').style.display =""; 
    setTimeout('document.images["myAnimatedImage"].src="work.gif"', 200); 
    } 
</script> 

此使用setTimeout方法,使DOM的200ms復位後圖像的src屬性。結果是,當您按下按鈕來啓動長時間運行的方法時,圖像將顯示並繼續動畫,直到回發並重新加載頁面,然後圖像消失 - 完全是我們想要的行爲。

+0

這很有趣,但在我的情況下,我沒有圖像。我有一些正在凍結的JqueryUI動畫。就像我使用.slidUp一樣,div會滑出部分,凍結,然後完成隱藏。正如鏈接問題中所建議的,我正在考慮在頁面中添加一些html。你有什麼想法我可以解決這個問題嗎? – kralco626 2011-04-11 12:36:37

+0

@ kralco626如果幻燈片是跳躍檢查http://jqueryfordesigners.com/slidedown-animation-jump-revisited/ – redsquare 2011-04-11 12:40:56

+0

@redsquare - 我可能是錯的,但似乎在該文章中討論的跳躍問題是一個問題動畫本身,即使在使用動畫時也會發生這種情況,即使頁面上沒有其他任何內容。這不是那種情況,如果動畫是唯一發生的事情比沒有問題。只有當我也在執行動畫預先形成ajax調用並隨後生成html並將其添加到頁面時。 – kralco626 2011-04-11 13:28:36