我正在研究Web應用程序的前端。所有內容都是從我從後端收到的JSON對象生成的。然後我將這些內容封裝在HTML中並將其添加到DOM中。我使用jQuery append()來做到這一點。一旦添加了內容,我就會將舊頁面和新頁面設置爲動畫。將動畫添加到DOM中的新內容
我的問題是內容在動畫開始之前似乎沒有完成加載。似乎並不是所有的CSS在動畫開始之前都會生效。它只在動畫完成時顯示。
我認爲我需要檢查內容是否完成添加之前,我開始動畫。我知道append()應該是同步的,但是不能傷害到檢查。
下面是一段代碼片段,讓您瞭解涉及的動畫。 (注意:這不是我的全部代碼,只是最低限度讓你知道我在做什麼)
- 'mainTransitionContainer'是新內容添加到的元素。
- 'transitionWidth'是使用舊頁面和新頁面的寬度確定的變量。
- 這兩個頁面都位於mainTransitionContainer內部,彼此相鄰。
$(mainTransitionContainer).append(newElement); $(mainTransitionContainer).ready(function() { $(mainTransitionContainer).animate({ right: transitionWidth }, 2000,'easeInOutQuart'}); });
這是正確的方法來檢查內容加載完成?
有沒有人有另一種想法,爲什麼我的內容無法正確顯示?
jQuery動畫可能會影響我的CSS樣式嗎?
有沒有人有任何建議?非常感謝。
你如何加載的內容? 'ready'事件只對'document'有效,因爲它將一個處理程序綁定到DOMReady事件,當您通過異步請求加載內容時不會觸發該事件。 – 2012-08-17 08:43:00
謝謝Didier。這已經澄清了一些事情。我編輯了原始代碼給你一個更好的主意。 'newElement'變量基本上是一個包含一些複雜HTML代碼的字符串。然後使用append()將其添加到'mainTransitionContainer'。 – phunder 2012-08-17 08:50:29
* * newElement的內容是如何產生的?通過ajax加載或簡單地在JavaScript中建立? – 2012-08-17 08:53:29