6

我在我的网站上安装了 jScrollPane,但无法正常工作。

我的网站的工作方式如下:从主页开始,页面是使用 jQuery 的load()方法动态加载的。在我加载的页面中,我有以下脚本来启动 jScrollPane:

$(function(){
    $('.scroll-pane').jScrollPane();
});

这似乎被称为。到目前为止我猜没有问题。问题是页面开始时不够长,不需要滚动条。我的隐藏内容仅在特定操作中显示(即单击按钮显示某个段落的内容),当我单击显示隐藏 div 的内容时,滚动条不会出现。

我还尝试在$('.scroll-pane').jScrollPane();显示新内容时调用(即,如果触发.show()隐藏的事件div我也调用$('.scroll-pane').jScrollPane();),但我也没有成功。

谁能帮我?

谢谢

编辑:

我忘了提到页面的结构:我有一个页面加载并加载了它,它包含在单击特定区域时显示的小的隐藏 div divclass="scroll-pane"我想使用类滚动窗格向 div 添加一个滚动条,以使显示的 div 的内容可滚动(现在内容保持在 div 的大小,但它不可滚动,因为没有 jScrollPane 滚动条如图所示)。

更新:

我试图放入我的 div$('.scroll-pane').jScrollPane();的方法的回调.show()并尝试放入class="scroll-pane"那些出现的 div,但又没有显示任何内容(滚动条不出现,div 不可滚动)。

4

2 回答 2

19

查看插件开发者提供的这个演示

http://jscrollpane.kelvinluck.com/examples/invisibles.html

当元素首次显示时,您只需(重新)初始化滚动窗格(或者如果您愿意,您甚至可以使用 autoReinitialise),它的宽度和高度将被正确计算。

你所需要的只是

$(function(){
    $('.scroll-pane').jScrollPane({autoReinitialise: true});
});

并且可能是插件的最新版本

于 2012-01-29T06:46:53.643 回答
1

我建议使用 css 可见性属性而不是自动重新初始化。每次调用 show() 方法时,jScrollPane 都会重新初始化。这需要时间并且对动画有影响。

如果你使用,比如说,slide..() 方法,那么动画会正常启动,但可滚动容器(及其元素)会稍晚出现,这看起来很糟糕。

var wrapper = jQuery('#gallery-album-preview-wrapper');
if (wrapper.css("visibility") == "hidden") {
    wrapper.css("visibility", "visible").css("display", "none");
}
if (wrapper.is(":hidden")) {
    wrapper.slideDown(1000);
} else {
    wrapper.slideUp(1000);
}
于 2012-10-27T08:30:43.797 回答