Задать вопрос
@ArtemKornishon

Почему не присваивается dataset.order?

Привет.
Пытаюсь настрочить пет-проект, а конкретно верстку лендинга с интерактивными штуками.
Там присутствует слайдер-карусель, который я пытаюсь сделать по различным гайдам.
На текущий момент проблема состоит в том, что не присваивается dataset.order карточкам, чтоб задать им порядок
Вроде все проверил, все написано правильно и без ошибок, не понимаю куда копать

<div class="rates__slider-container">
                <button class="rates__slider-prev" type="button"></button>
                <button class="rates__slider-next" type="button"></button>
                <div class="rates__slider">
                    <article class="rates__card">
                        <h3 class="rates__card-title">Сайт “Каталог”</h3>
                        <p class="rates__card-text">Сайт-каталог – это полноценный веб-ресурс, в котором потребители могут ознакомиться с товарами или услугами компании. Являясь удобным инструментом продаж, сайт-каталог может повысить доходность бизнеса и упростить задачу по предоставлению ассортимента целевой аудитории.
                         </p>
                         <div class="rates__card-info">
                            <div class="rates__card-prices">
                                <span class="rates__card-price">От 60.000₽</span>
                                <span class="rates__card-term">От 15 дней</span>
                            </div>
                            <button class="rates__card-button">Подробнее ></button>
                        </div>
                    </article>
                    <article class="rates__card">
                        <h3 class="rates__card-title">Сайт “Визитка”</h3>
                        <p class="rates__card-text">Сайт-визитка - компактный веб-ресурс – отличный старт бизнеса в интернете. Сайт-визитка содержит несколько страниц, в том числе – информацию о компании, её товарах и услугах, прейскурант цен, контакты и координаты для связи.
                        </p>
                        <div class="rates__card-info">
                            <div class="rates__card-prices">
                                <span class="rates__card-price">От 30.000₽</span>
                                <span class="rates__card-term">От 5 дней</span>
                            </div>
                            <button class="rates__card-button">Подробнее ></button>
                        </div>
                    </article>
                    <article class="rates__card">
                        <h3 class="rates__card-title">Сайт “Интернет магизин”</h3>
                        <p class="rates__card-text">Сайт-визитка - компактный веб-ресурс – отличный старт бизнеса в интернете. Сайт-визитка содержит несколько страниц, в том числе – информацию о компании, её товарах и услугах, прейскурант цен, контакты и координаты для связи.
                        </p>
                        <div class="rates__card-info">
                            <div class="rates__card-prices">
                                <span class="rates__card-price">От 75.000₽</span>
                                <span class="rates__card-term">От 30 дней</span>
                            </div>
                            <button class="rates__card-button">Подробнее ></button>
                        </div>
                    </article>
                    <article class="rates__card">
                        <h3 class="rates__card-title">Сайт “Landing page”</h3>
                        <p class="rates__card-text">Одностраничный сайт (Landing Page) – так называют промо-сайты для презентации товара, услуги и организации мгновенных продаж. Мы умеем создавать веб-ресурсы, полностью готовые к наплыву лавины посетителей. Одна-единственная страница принесёт колоссальную прибыль: иначе и быть не может.
                        </p>
                        <div class="rates__card-info">
                            <div class="rates__card-prices">
                                <span class="rates__card-price">От 25.000₽</span>
                                <span class="rates__card-term">От 17 дней</span>
                            </div>
                            <button class="rates__card-button">Подробнее ></button>
                        </div>
                    </article>
                    <article class="rates__card">
                        <h3 class="rates__card-title">Сайт “Корп.сайт”</h3>
                        <p class="rates__card-text">Корпоративный сайт – это крупномасштабный портал, который создается не только для контакта организации с клиентами, но и для обмена информацией, мнениями, идеями между сотрудниками и руководством. Электронный ресурс такого типа – лицо компании, солидный «костюм», вызывающий у партнёров и контрагентов уважение и интерес.
                        </p>
                        <div class="rates__card-info">
                            <div class="rates__card-prices">
                                <span class="rates__card-price">От 60.000₽</span>
                                <span class="rates__card-term">От 17 дней</span>
                            </div>
                            <button class="rates__card-button">Подробнее ></button>
                        </div>
                    </article>
                    <article class="rates__card">
                        <h3 class="rates__card-title">Сайт “Индивидуальный”</h3>
                        <p class="rates__card-text">Мы готовы выслушать вашу идею, и выполнить задание. Цена проекта будет складываться от ее технического задания и сроков выполнения.
                        </p>
                        <div class="rates__card-info">
                            <div class="rates__card-prices">
                                <span class="rates__card-price">От ?₽</span>
                                <span class="rates__card-term">От ? дней</span>
                            </div>
                            <button class="rates__card-button">Подробнее ></button>
                        </div>
                    </article>
                </div>
                </div>


const RatesSlider = document.querySelector('.rates__slider');
const SliderContainer = document.querySelector('.rates__slider-container');
const Slides = document.querySelector('.rates__card');
const btnNext = document.querySelector('.rates__slider-next');
const btnPrev = document.querySelector('.rates__slider-prev');

let activeOrder = 0;

init();

function init() {
    for (let i = 0; i < Slides.length; i++) {
        const slide = Slides[i];

        slide.dataset.order = i;
        slide.style.transform = "translate(50%, 50%)";
    }

    activeOrder=Math.floor(Slides.length / 2);

    update();
}


function update() {
    const {width, height} = SliderContainer.getBoundingClientRect();

    for (let i = 0; i < Slides.length; i++) {
        const leftSlide = document.querySelector(`.rates__slider[data-order="${activeOrder - i}"]`);

        if (leftSlide) {
            leftSlide.style.left=`${width / 2}px`
        }

        const rightSlide = document.querySelector(`.rates__slider[data-order="${activeOrder + i}"]`);
    }
}


Код в хтмл подключен. length написал правильно, что еще может быть?
  • Вопрос задан
  • 52 просмотра
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ваш ответ на вопрос

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

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