вот моя ссылка на codepen (там также переключатель тем, не обращайте на это внимания)
javascript
vue.js
\$\конечная группа\$ 1 \$\начало группы\$
Ваш код ломается, когда ваши идентификаторы не следуют друг за другом. Я бы тогда не назвал их id , а может индекс а если индекс, то зачем вообще их иметь в структуре данных (это подразумевается позицией в массиве)?
Это 0 как магическое число первых id меня тоже смущает. Было бы намного лучше инициализировать этот идентификатор на основе содержимого [0].id
.
Ваш первый , если есть, потому что вы не хотели создавать отдельные методы для кнопок «вперед» и «назад». Если вы создадите 2 отдельных метода, код будет короче, чище, и вы избавитесь от первых , если .
Тогда ваш код состоит из 2 методов с одним if-else . Поскольку вы просто перемещаете этот индекс между 0 и contents.length , вы можете вместо этого использовать модуль % и удалить его, если он тоже. Что-то вроде:
Я бы выделил условия ваших ifs в такие методы, как isOnFirstItem или isOnLastItem , что значительно повышает читаемость для тех, кто никогда раньше не видел код.
Вместо того, чтобы изменять currentContentId , я бы создал явные методы, такие как goForward , goFirst , goPrevious , goBack .
\$\конечная группа\$ 6 \$\начало группы\$
Эта часть:
if (e.target.parentElement.id === "nav__back") {
если (this.currentContentId == 0) {
this.currentContentId = длина цикла
} еще {
this.currentContentId--
}
} еще {
если (this.currentContentId == loopLength) {
this.currentContentId = this.currentContentId — длина цикла
} еще {
this.currentContentId++
}
}
Фактически перемещает currentContentId вперед или назад на 1 с циклическим переносом.
Обратите внимание, что это:
if (this.currentContentId == loopLength) {
this.currentContentId = this.currentContentId — длина цикла
}
Равно: (потому что мы уже знаем, что this. currentContentId == loopLength )
if (this.currentContentId == loopLength) {
этот.currentContentId = 0
}
Зарегистрироваться через Facebook Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
Создание пользовательской карусели сообщений в Elementor
Создавайте сложные веб-сайты за меньшее время.
Pro
Карусель сообщений
Настройте виджет карусели сообщений на свои веб-сайты Elementor…
Посмотреть демо
Бесплатно
Lordicon: анимированные иконки
Мощная библиотека анимированных иконок с Более 1500 бесплатных и премиальных анимированных…
Посмотреть демонстрацию
Pro
Карусель продуктов WooCommerce
Помогает продемонстрировать ваши продукты Woocommerce на любой странице Elementor…
Посмотреть демо
Бесплатно
Карусель карточек
Используйте этот виджет для отображения двух или более частей контента в…
Посмотреть демонстрацию
Бесплатно
Фигуры капель
Создавайте случайные, уникальные и органично выглядящие формы капель. Вы можете…
Посмотреть демо
Pro
Динамическая карусель шаблонов
Этот виджет позволяет создавать циклический элемент так же, как один.
.. Просмотреть демонстрацию
Pro
Аккордеон изображений
Неограниченные возможности дизайна для изменения стилей в соответствии с…
Просмотреть демонстрацию
Pro
Боковое меню
Создавайте расширенные меню WordPress для управления стилем для…
Просмотреть демоверсию
Pro
Слайдер открыток
Настройте виджет слайдера открыток на свои веб-сайты Elementor…
Просмотреть демонстрацию
Pro
Динамическая сетка шаблонов
Позволяет создавать циклический элемент так же, как одиночный шаблон… Виджет сетки постов можно использовать для разместить свои сообщения рядом с…
Посмотреть демо
Бесплатно
Простой слайдер
Простой слайдер — это самый простой и быстрый способ настроить простой…
Посмотреть демо
Pro
Вкладки со значками0003
Вкладки со значками помогают отображать содержимое веб-сайта в интерактивном режиме…
Просмотреть демоверсию
Pro
Загрузить еще / Бесконечная прокрутка
Виджет Загрузить еще / Бесконечная прокрутка дает вам возможность. ..
Просмотр Demo
Pro
AJAX Search
Самый быстрый виджет поиска AJAX для вашего сайта WordPress. Легко…
Посмотреть демоверсию
Бесплатно
Флип-бокс
Флип-боксы имеют полностью настраиваемое содержимое спереди и сзади…
Посмотреть демо
Бесплатно
Блоки сообщений
Виджеты Блоки сообщений представляют собой сетку для отображения вашего блога… 04 Отличный способ продемонстрировать посты в интерактивном макет карусели…
Посмотреть демо
Бесплатно
Хронология маркеров
Перечислите свои функции или услуги, используя маркеры, чтобы сделать это…
Посмотреть демо
Бесплатно
Анимированный значок гамбургера
Этот виджет имеет 9 различных эффектов на выбор. Пока вы…
Посмотреть демо
Бесплатно
Номерной ящик
Виджет числового поля поможет вам создать потрясающие числовые поля… 4 Виджет Unlimited Table дает вам самый простой способ создать таблицу.