#javascript #vue.js
Вопрос:
В моем vue
приложении у меня есть список ссылок, которые я хочу, чтобы они автоматически запускались одна за другой с интервалом по умолчанию, скажем, через 3 секунды запускается первая ссылка, затем еще через 3 секунды запускается ссылка 2… так что это своего рода карусель/автозапуск со ссылками, которых я хочу достичь, но я действительно не знаю, как это решить.
вот мой код:
<li v-for="(slide, index) in slides" :key="index" :class="slideIndex === index ? 'active' : ''" @click="slideIndex = index" ref="slide">
{{ slide.title }}
</li>
а потом я подумал что-то вроде этого:
mounted() {
Object.keys(this.$refs.slide).forEach((el) => {
setInterval(() => {
this.$refs.slide[el].click();
}, 3000);
});
},
но это запускает все ссылки и кажется совсем неправильным, но это всего лишь небольшая идея…
Кто-нибудь может мне помочь?
Комментарии:
1. Это похоже на проблему XY. Что вы хотите, так это увеличивать индекс каждые 3 секунды.
Ответ №1:
Я бы не рекомендовал делать это, имитируя щелчок по ссылке.
Как насчет установки элемента, который вы хотите сделать активным в своем коде?
Я предполагаю slideIndex
, что это текущий выбранный слайд?
Вы могли бы попробовать что-то вроде этого:
setInterval(() => {
this.slideIndex = this.slideIndex < this.slides.length - 1 ? (this.slideIndex = 1) : 0;
}, 3000);
Таким образом, вы добавляете 1 каждый раз, когда запускается интервал, и циклически просматриваете слайды. Если он в конце slideIndex
, сбрасывается и начинается в 00