2009-09-01 79 views
0

我們剛剛開始在應用程序中使用jCarousel,並且遇到一些奇怪的UI行爲。在頁面呈現之前的一瞬間,組成內容的每個LI都會在頁面上展開。一旦jQuery(「#carousel-name」)。jcarousel();但是,頁面會回到它應該看起來的樣子。在jCarousel初始化之前防止格式不正確

我認爲我們在應用中看到這個,但沒有看到任何例子的原因是因爲我們的內容比jCarousel網站上的例子複雜得多,而且瀏覽器渲染需要更長的時間HTML。

我在Stack Overflow的其他地方看到,在每個li中隱藏div似乎不能正確工作,因爲jCarousel找不到合適的寬度。

在我嘗試讓jCarousel動態加載傳送帶項目的麻煩之前,我想看看是否有其他人有這個問題,以及是否有更簡單的解決方案。

回答

0

我最終通過在頁面底部隱藏的LIs內加載旋轉木馬的內容來解決這個問題。當頁面加載,初始化我用itemLoadCallback集旋轉木馬:

itemLoadCallback: {onBeforeAnimation: switchHiddenCarouselParts} 

在itemLoadCallback功能,我每個隱藏面板添加至轉盤:

carouselLoaded = false; 
function switchHiddenCarouselParts(carousel, state) { 
    if (!carouselLoaded) { 
     panes = ["pane1", "pane2"]; 

     for (i = 0; i < panes.length; i++) { 
     hidden = $("#"+panes[i]); 
     carousel.add((i+1), hidden.html()); 
     hidden.remove(); 
     $("#"+panes[i]).show(); 
     } 
     carouselLoaded = true; 
    } 
}