2009-09-01 60 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; 
    } 
}