slick.js 隐藏幻灯片直到点击屏幕上的元素

slick.js hide slideshow until click element on screen

我正在使用 slick.js (http://kenwheeler.github.io/slick/)。

我想要做的是隐藏幻灯片,直到用户单击页面上的元素。问题是,当幻灯片淡入时,我看到的只是下一个和上一个按钮,没有图像。

css:

#slideshow2 {
  width: 840px;
  margin: 0 auto; 
  display: none;
}

jquery:

    $('#slideshow2').slick({
            accessibility: true,
            adaptiveHeight: true,
            arrows: true,
            variableWidth: true,
            prevArrow: "<i class='fa fa-2x fa-arrow-circle-o-left'></i>",
            nextArrow: "<i class='fa fa-2x fa-arrow-circle-o-right'></i>"
        });

   $('#edgar_head').on('click', function() {
            $('#slideshow2').fadeIn();

        });

有人知道我做错了什么吗?

这是我必须做的: css:

#slideshow2 {
    width: 840px;
    margin: 20px auto; 
    opacity: 0; /* so I can fade it in once display is set to block*/
    display:none;
}

jquery:

 $('#slideshow2').slick({ //initialize, so the slideshow is properly styled //onload
            accessibility: true,
            adaptiveHeight: true,
            arrows: true,
            variableWidth: true,
            prevArrow: "<i class='fa fa-2x fa-arrow-circle-o-left'></i>",
            nextArrow: "<i class='fa fa-2x fa-arrow-circle-o-right'></i>"
        });

        $('#edgar_head').on('click', function() {
            //alert();
            $('#slideshow2').slick('unslick'); //unslick it
             $('#slideshow2').css('display','block'); //change display none to //display block
             $('#slideshow2').slick({ //reinitialize
                accessibility: true,
                adaptiveHeight: true,
                arrows: true,
                prevArrow: "<i class='fa fa-2x fa-arrow-circle-o-left'></i>",
                nextArrow: "<i class='fa fa-2x fa-arrow-circle-o-right'></i>"
                });
            $("#slideshow2").delay( 100 ).animate({"opacity":"1"},1000  ); //fade in by animating opacity

        });

您无需在 CSS 中执行任何操作。就像您已经拥有的 #slideshow2 中的 display:none 一样。

并添加此代码 -

var sliderAdded = false;
$('#edgar_head').click(function(event) {
    // prevent multiple slick calling 
    if(sliderAdded === true) {
        return false;
    }

    $('#slideshow2').stop().fadeIn(function(){
        $(this).slick({
            accessibility: true,
            adaptiveHeight: true,
            arrows: true,
            prevArrow: "<i class='fa fa-2x fa-arrow-circle-o-left'></i>",
            nextArrow: "<i class='fa fa-2x fa-arrow-circle-o-right'></i>"
        });

        sliderAdded = true;
    });
});

当您在文档就绪时调用 slick 然后 slick 开始绑定它的事件并且 slick 发现您的元素的高度为 0 因为它正在显示 none。您需要在文档以适当的高度出现后调用 slick。我希望这能给你提示为什么它不起作用。