2012-04-17 28 views
0

我在$(db)中有大量的xml數據。當某個元素被點擊時,函數將遍歷$(db)並在隱藏的div內創建新的DOM元素。那我怎麼才能順利滑下div呢?創建DOM元素之後,平滑上滑/下滑

$('li').live('click', function(){ 
    // many $('div.content').append(.... 
    $('div.content').slideDown(); 
}); 

在上面的例子中div.content變得可見,但沒有幻燈片效果。如果我,而不是創建DOM元素加載具有不同的相同內容的HTML文檔,幻燈片效果正常工作。我認爲當創建大量新的DOM元素時,瀏覽器會阻塞,然後無法執行流暢的動畫。我怎麼能解決這個問題?是否有可能在變量中創建所有的DOM元素,然後將它顯示爲使用.load()時的情況?

+0

您是否厭倦將slideDown調用移動到您的append循環的末尾,以便它按順序執行? – 2012-04-17 17:16:50

回答

0

如果您可以從DOM中選擇新創建的元素,該方法將很好地工作(需要jQuery)。您只需顯示您創建的元素,然後將瀏覽器滾動到視圖中。

function scrollTo(element){ 
    $("html, body").animate({ 
     scrollTop: $(element).position().top 
    }); 
} 
+0

不,這也行不通。動畫不起作用。如果我通過ajax加載所有數據,但它在創建幾百個新的DOM元素之後無效。同樣的問題 - 瀏覽器似乎堵塞了一下。 – lukeshek 2012-04-17 17:56:49