@dmitriu256

Почему пропадает содержимое slick-slider?

Решил блок результаты оформить в виде Slick-Slider-а. Все отображается корректно на всех экранах
На больших
5e5d118b1811f553658456.png
На малых
5e5d1197c25ee642341746.png
Но как только добавляю код модального окна
получаю пустоту вместо контента.
Что можно предпринять чтобы избавиться от такого поведения?
5e5d121c60b3c916903169.png
Хотя все остальные модальные окна отображаются корректно.

<!-- RESULT -->
<div class="popup popup-result" id="popup-result">
    <div class="popup-content popup-result-content">
        <button class="popup-content__close">&times;</button>

        <div class="popup-result-slider">
            <div class="popup-result-block">
                <h3 class="popup-result-block__title">Результаты</h3>

                <p class="popup-result-block__descr">Киев, под шпаклевку,
                    неровность 40 мм.
                </p>

                <span class="popup-result-block__cost">Стоимость работ <br> <strong>- 330</strong> грн/м<sup>2</sup></span>

                <ul class="popup-result-block__list">
                    <li class="popup-result-block__item">Проведение работ</li>
                    <li class="popup-result-block__item">Уборка</li>
                </ul>
                <!-- /.price-block__list -->
            </div>
            <!-- /.price-block popup-result-block -->

            <div class="popup-result-block">
                <h3 class="popup-result-block__title">Результаты</h3>

                <p class="popup-result-block__descr">Киев, под шпаклевку,
                    неровность 40 мм.
                </p>

                <span class="popup-result-block__cost">Стоимость работ <br> <strong>- 530</strong> грн/м<sup>2</sup></span>

                <ul class="popup-result-block__list">
                    <li class="popup-result-block__item">Завоз материала и его подъём</li>
                    <li class="popup-result-block__item">Проведение работ</li>
                    <li class="popup-result-block__item">Уборка</li>
                    <li class="popup-result-block__item">Гарантия 2 года</li>
                </ul>
                <!-- /.price-block__list -->
        </div>
        <!-- /.popup-result-slider-->


        </div>
        <!-- /.price-block popup-result-block -->
    </div>
    <!-- /.popup-content popup-calculator-content -->
</div>


/*POPUP-RESULT*/
.popup
  &-result
    display: none
    &-content
      display: flex
      justify-content: space-between
      padding: 0
      max-width: 700px
      background: linear-gradient(to right, $calculator-bg 50%, #ffffff 50%)
    &-block

      font-size: 18px
      background: transparent
      box-shadow: none
      min-height: 450px
      padding: 30px 80px
      &__title
        font-size: 18px
        margin-bottom: 30px
      &__descr
        margin-bottom: 30px
      &__cost
        display: block
        margin-bottom: 30px
        font-size: 20px
        font-weight: 700
        strong
          font-size: 30px
      &__list
        margin-bottom: 20px
        min-height: 130px
        font-size: 16px
        line-height: 1.6
        list-style: none
      &__item
        &::before
          display: inline-block
          content: ''
          width: 14px
          height: 14px
          margin-right: 10px
          background: url('../img/check.svg') center no-repeat
          background-size: 100%
          vertical-align: middle


Код слайдера
//Popup-result-slider
    $('.popup-result-slider').slick({
        infinite: true,
        focusOnSelect: true,
        slidesToShow: 2,
        slidesToScroll: 1,
        responsive: [
            {
                breakpoint: 576,
                settings: {
                    slidesToShow: 1,
                    slidesToScroll: 1,
                    infinite: true,
                    dots: false,
                    prevArrow: '<button class="slider-btn slider-btn__prev"></button>',
                    nextArrow: '<button class="slider-btn slider-btn__next"></button>'
                }
            }
        ]
    });


Порядок подключения скриптов
<script src="JQUERY cdn"></script>
<!-- Slick Slider script -->

<script src="plugins/slick/slick.min.js"></script>
<script src="js/slider.js"></script>


<!-- Main Script -->
<script src="js/main.js"></script>


Код модального окна из main.js
/*POPUP*/
document.addEventListener('DOMContentLoaded', function() {
    let btnHelp = document.querySelector('#help');
    
    btnHelp.addEventListener('click',() => showPopup('#popup-result'));

    //Проверка наличие куки
    function getCookie(name) {
        let matches = document.cookie.match(new RegExp(
            "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
        ));
        return matches ? decodeURIComponent(matches[1]) : undefined;
    }

    function showPopup(selector) {

        let date = new Date();
        date = new Date(date.setDate(date.getDate() + 1));

        let modal = document.querySelector(selector);
        modal.style.display = 'block';
        document.body.style.overflow = 'hidden';

        window.addEventListener('click', function(event) {
            if(event.target === modal) {
                modal.style.display = 'none';
                document.body.style.overflow = '';
            }
        });

        document.cookie = `${decodeURI('popup')} = ${decodeURI(true)}; expires = ${date}; path = /`;
        closePopup(modal);
    }

    function closePopup(modal) {
        let  modalClose = modal.querySelector('.popup-content__close');
        modalClose.addEventListener('click', function(){
            modal.style.display = 'none';
            document.body.style.overflow = '';
        });

    }
    
    if(getCookie('popup') === undefined) {
        setTimeout(() => showPopup('#popup-result'), 5000);
    }

    /*END POPUP*/
});
  • Вопрос задан
  • 923 просмотра
Пригласить эксперта
Ответы на вопрос 2
iiiBird
@iiiBird Куратор тега HTML
Пока ты спишь - твой конкурент совершенствуется
в функцию showPopup добавь
$('.popup-result-slider').slick('setPosition');
Ответ написан
Комментировать
@dmitriu256 Автор вопроса
Решил задачу немного по другому
visibility: hidden
Все успешно заработало без изменения js-кода
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы