在Lightslider运行之前预加载图像

时间:2015-11-03 18:55:44

标签: jquery preload

我试图强制Lightslider(http://sachinchoolur.github.io/lightslider/index.html)仅在加载了所有图像和内容后才能运行。如何才能做到这一点? 我已使用下面的代码实现了目标,但在Chrome上它始终会触发错误:

未捕获的TypeError:无法读取未定义的属性'pause'

此错误不会阻止行为正确,但我们不能因强制性标准而触发错误。

你有解决这个问题的线索吗?

<link rel="stylesheet" href="css/lightslider.css"/>

<script language="JavaScript" type="text/javascript" src="Js/jquery.js"></script>

<script language="JavaScript" type="text/javascript" src="Js/lightslider.js"></script>

<script type="text/javascript">
$(document).ready(function () {

$('#image-gallery').lightSlider({
        gallery: true,
        item: 1,
        thumbItem: 6,
        slideMargin: 0,
        thumbMargin: 5,
        animateThumb: true,
        cssEasing: 'ease',
        easing: 'linear',
        speed: 500,
        pause: 3000,
        auto: true,
        loop: true,
        onSliderLoad: function () {
            $('#image-gallery').removeClass('cS-hidden');                        
        }
    });
    $('#image-gallery').autoplaySlider.pause();
});
$(window).load(function () {
     $('#image-gallery').autoplaySlider.play();
});
</script>

1 个答案:

答案 0 :(得分:1)

尝试将lightSlider创建包装到

$(window).load(function () {

   $('#image-gallery').lightSlider({
       gallery: true,
       item: 1,
       ...

});

不要调用pause()和play()。

作为一般规则,如果你打算使用图像并期望它们被加载,那么最好在$(window)内部进行编码.load

我希望它有效!