javascript - jCarousel 没有在隐藏的 div 中绘制

标签 javascript jquery hidden jcarousel redraw

我正在使用一个 div 来填充一个 ul/li 列表,然后从中绘制一个 jCarousel。 所以这很好用:

$('#mycarousel').jcarousel();

问题是:

包含 ul/li 项的 div 可以通过单击另一个按钮来隐藏。当 div 隐藏时,我重新调整浏览器窗口的大小,jCarousel 也会尝试重绘自身,但由于它是隐藏的,因此无法正确绘制。结果是列表中的所有内容都乱七八糟(如果我再次单击该按钮以使其可见)。但是,如果我现在重新调整窗口大小(困惑的 jCarousel 现在没有隐藏),它会正确地重绘自己。

我尝试获取 jCarousel 实例并在单击按钮后立即重新加载自身以使 div 可见(当它可见时它重新调整自身大小并重新调整窗口大小时的方式)。

为了获得 jCarousel,我正在使用:

JQuery('#mycarousel').data('jcarousel') 

它返回为 null。

如何让 jCarousel 正确绘制?

最佳答案

是什么让您假设 $().jcarousel() 调用对 .data() 执行任何操作?无论如何最好坚持使用插件提供的 API,而不是猜测它在幕后是如何工作的。无论如何,回答你的问题......

问题是,当一个 div 被隐藏时,它没有高度或宽度。使用“左移技术”而不是隐藏 div,如下所示:

#mycarousel {
    height: 100px; /* whatever height your div will have when shown */
    width: 100px;  /* whatever width your div will have when shown */
    position: absolute:
    left: -10000px;
}

想展示的时候,用$('#mycarousel').css('position', 'static')去掉绝对定位,div就会跳到位了。

更多信息 here .

关于javascript - jCarousel 没有在隐藏的 div 中绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2731362/

相关文章:

jQuery 移动 : Tap event on listview item also fires hidden object event

javascript - 计算文本中的空白垂直空间

javascript - 属性指令 scope.apply 在 ng-repeat 中使用时不起作用

javascript - 使用 jQuery 删除动态生成的 html

javascript - 图像过滤器在 Fabric.js 中的克隆对象之间共享

jquery - 从隐藏字段获取值

unix - 使用 Ant 删除隐藏目录中的 Unix 目录

JavaScript 拆分方法删除前 2 个部分

JavaScript 拆分并添加一个字符串

javascript - jQuery Sortable 不能拖放