代码之家  ›  专栏  ›  技术社区  ›  Waleed Asender

当jQuery slideUp显示时,滑动转盘未启动

  •  1
  • Waleed Asender  · 技术社区  · 10 年前

    我正在使用 slick carousel 带有隐藏状态和使用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");
        });
    });
    

    工作正常,但我第一次切换 #旋转木马 当我第一次点击导航器时,它开始正常工作,并且切换它时,它不会把它搞乱。但当我使默认状态可见时,它会正常启动。

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

    当状态隐藏时,如何使其初始化? 顺便说一下,我正在使用引导程序。但我需要灵活的旋转木马,因为它有一个很好的响应方法,引导旋转木马不适用。

    1 回复  |  直到 9 年前
        1
  •  1
  •   Steve    10 年前

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

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

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

    因此,需要注意两点: -在css中,流畅的内容没有设置为“display:none” -经过短暂的延迟(setTimeout()),内容会被js隐藏。