使用 jQuery slideUp 显示时,Slick 轮播未启动

Slick carousel not initiating when showed with jQuery slideUp

我正在使用具有隐藏状态的 slick carousel 和 link 使用 jQuery slideUp/slideDown:

来切换它
<a href="#" id="carousel-toggle"><span class="fa fa-navicon"></span></a>
<div id="carousel" style="display: none;">
    <div class="carousel">
        <div>your content 1</div>
        <div>your content 2</div>
        <div>your content 3</div>
        <div>your content 4</div>
    </div>
</div>

这是我的 jQuery:

$('.carousel').slick();
jQuery(document).ready(function($){
    $('#carousel-toggle').on('click', function(){
        var content = $(this).parents().find('#carousel');
        if (content.is(':visible'))
            content.slideUp("slow");
        else
            content.slideDown("slow");
    });
});

它工作正常,但是我第一次切换 #carousel 它显示所有幻灯片都乱七八糟,当我第一次点击导航时它开始正常工作,并切换它不会把它搞砸。但是当我使默认状态可见时,它会正常启动。

这个 JSFIDDLE 解释了一切:http://jsfiddle.net/walidov/8Lfyfcut/

如何在状态隐藏时启动它? 顺便说一句,我正在使用 bootstrap3。但我需要光滑的旋转木马,因为它有一个很好的响应方法,bootstrap 旋转木马应用。

似乎有效的是在短暂延迟后用 js 而不是 css 隐藏内容。延迟是为了给 slick 一些时间来启动。

setTimeout(function(){    
    var content = $('#carousel');
    content.slideUp(10);
}, 10);

解决方案:http://jsfiddle.net/8Lfyfcut/12/

所以,有两点需要注意: - 光滑的内容未设置为 "display: none" 与 css - 内容在短暂延迟后被 js 隐藏 (setTimeout())。