javascript - Slick Slider 宽度重新计算

标签 javascript jquery css slick.js

我正在尝试使用 CSS 在 Slick 容器上添加面板中的幻灯片。除了在添加空间时不计算新宽度外,轮播的所有内容都有效。一旦我前进到下一张幻灯片,它就会重新校准,但我希望它在每次打开或关闭面板时都发生。我试过同时添加边距和填充,但两者都没有区别。有什么想法吗?

https://jsfiddle.net/mhigley/dpf7mLpL/

HTML:

<button type="button" id="button"><i class="fa fa-arrow-right"></i></button>
<aside>
    <h2>Slide In Panel</h2>
    <ol>
        <li>list item</li>
        <li>list item</li>
        <li>list item</li>
        <li>list item</li>
        <li>list item</li>
    </ol>
</aside>
<main role="main">
    <div class="sections">
        <section>
            <article>
                <h2>First Slide</h2>
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Labore libero nesciunt sequi doloribus, non reprehenderit laboriosam laudantium nemo reiciendis illum. Libero eveniet quibusdam blanditiis aspernatur.</p>
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Perspiciatis nihil quaerat, officiis autem, sunt dicta!</p>
                <figure>
                    <img src="//unsplash.it/600/200?image=400" style="max-width: 100%;" alt="">
                    <figcaption>Source: <a href="#">Unsplash</a> and a continuation of the same source to wrap to multiple lines... which does not appear to be wrapping.</figcaption>
                </figure>
                <ul>
                    <li>list item</li>
                    <li>list item
                        <ul>
                            <li>nested list item</li>
                            <li>nested list item</li>
                            <li>nested list item
                                <ul>
                                    <li>nested list item</li>
                                    <li>nested list item</li>
                                    <li>nested list item</li>
                                </ul>
                            </li>
                            <li>nested list item</li>
                            <li>nested list item</li>
                        </ul>
                    </li>
                    <li>list item</li>
                    <li>list item</li>
                    <li>list item</li>
                </ul>
                <ol>
                    <li>list item</li>
                    <li>list item
                        <ol>
                            <li>nested list item</li>
                            <li>nested list item</li>
                            <li>nested list item
                                <ol>
                                    <li>nested list item</li>
                                    <li>nested list item</li>
                                    <li>nested list item</li>
                                    <li>nested list item</li>
                                </ol>
                            </li>
                            <li>nested list item</li>
                            <li>nested list item</li>
                        </ol>
                    </li>
                    <li>list item</li>
                    <li>list item</li>
                    <li>list item</li>
                </ol>
                <hr>
                <h3>Subheadline</h3>
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci, voluptatem. Id alias, magnam molestias voluptas eveniet eos laboriosam quae nemo possimus ipsum esse, fuga nulla.</p>
            </article>
        </section>
        <section>
            <article>
                <h2>Topic One</h2>
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Labore libero nesciunt sequi doloribus, non reprehenderit laboriosam laudantium nemo reiciendis illum. Libero eveniet quibusdam blanditiis aspernatur.</p>
                <figure>
                    <img src="//unsplash.it/600/200?image=410" style="max-width: 100%;" alt="">
                    <figcaption>Source: <a href="#">Unsplash</a> and a continuation of the same source to wrap to multiple lines... which does not appear to be wrapping.</figcaption>
                </figure>
                <hr>
                <h3>Subheadline</h3>
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet facilis, atque aperiam, cum animi incidunt ad error voluptate voluptas nihil eius dolores accusamus vel provident.</p>
            </article>
        </section>
        <section>
            <article>
                <h2>Topic Two</h2>
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Labore libero nesciunt sequi doloribus, non reprehenderit laboriosam laudantium nemo reiciendis illum. Libero eveniet quibusdam blanditiis aspernatur.</p>
                <figure>
                    <img src="//unsplash.it/600/200?image=420" style="max-width: 100%;" alt="">
                    <figcaption>Source: <a href="#">Unsplash</a></figcaption>
                </figure>
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consequatur distinctio cum molestias, dolor autem voluptatum. Voluptates maxime molestias ipsam, ducimus debitis cupiditate illo nam temporibus, modi in quibusdam enim optio iste
                    perferendis numquam amet odit neque! Velit nisi in id rem blanditiis officiis quas, odit voluptate, corrupti fuga, architecto facere.</p>
            </article>
        </section>
        <section>
            <article>
                <h2>Topic Three</h2>
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Labore libero nesciunt sequi doloribus, non reprehenderit laboriosam laudantium nemo reiciendis illum. Libero eveniet quibusdam blanditiis aspernatur.</p>
                <figure>
                    <img src="//unsplash.it/600/200?image=430" style="max-width: 100%;" alt="">
                    <figcaption>Source: <a href="#">Unsplash</a></figcaption>
                </figure>
                <blockquote>
                    <p>A blockquote Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repudiandae incidunt officiis, esse enim, nemo nesciunt.</p>
                </blockquote>
            </article>
        </section>
    </div>
</main>

j查询:

$('.sections').slick({
    speed: 250,
    useCSS: true,
    cssEase: 'ease-in-out',
    slidesToShow: 1,
    initialSlide: 0,
    dots: false,
    infinite: true,
    adaptiveHeight: true,
    draggable: true,
    nextArrow: '<button><i class="fa fa-angle-right"></i></button>',
    prevArrow: '<button><i class="fa fa-angle-left"></i></button>'
});

var $btn = $('#button'),
    $body = $('body');

$btn.on('click', function() {
    $body.toggleClass('padify');
});

最佳答案

此行来自 slick documentation 的方法部分

$('.sections').slick('setPosition');

您可以跟踪旁路过渡的结束并重置 slick 容器。

$('aside', $body).on('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(){
    $('.sections').slick('setPosition');  
});

关于javascript - Slick Slider 宽度重新计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38404199/

相关文章:

javascript - jQuery Accordion/Tabs - 在加载内容时调用不同的函数

jquery - 使用 jQuery 创建 div 时的 CSS 定位问题

html - 如何创建图像悬停叠加淡入

javascript - 选择要为函数传递的参数。 Javascript

javascript - 一个简单的自定义 JavaScript slider ?

javascript - JQuery:调用网络服务

php - 如何为事件菜单项提供不同的样式

javascript - 函数表达式的词法范围

iPhone 网络应用程序的 jQuery Mobile 高度问题,假定页面高度为 480 而不是 460

html - 如何使用 CSS 隐藏滚动条?