滚动条插件并不总是有效,是否有预载或我可以做的事情?

时间:2012-06-03 21:30:28

标签: jquery

所以这是网站:http://graysonearle.com/newtest/#prettyPhoto/6/ 这会带你到一个小窗口,侧边栏上有一些图像。我正在使用lionbar,这很棒,但它只能在50%的时间内使用。根据我的经验,这不是典型的网络问题。什么会导致脚本随机无法运行?我可以在那里扔一个标签,确保脚本正确加载? 只需重新加载它,直到你看到它工作/不工作。 它也与我调用插件的方式有关吗?

<script>
$('#sidebar').lionbars();
</script>

就在/ body标签之前。如果我以另一种方式做到这样会更可靠吗?

1 个答案:

答案 0 :(得分:2)

提出的问题是由于在加载图像之前初始化了脚本。

由于插件检查滚动条的“需要”:

lionbars.js第371行

// check for vertical scrollbars
if (el.get(0).scrollHeight > el.get(0).clientHeight) {
  addVScroll = true;
  // setVScrollbarWidth(el);
}

在调用脚本之前,您需要确保已加载图像。

我建议使用stackoverflow用户的脚本,在加载图像后运行lionbars函数:

GitHub page link for jQuery waitForImages!

例如

$('#sidebar').waitForImages(function() {

    // All images are loaded, initialize the scroll bar plug-in
    $('#sidebar').lionbars();
});

注意:

脚本有时可以工作的原因是因为有时候图像已经被浏览器缓存了,并且在脚本初始化之前它们会被放置在文档上。