@Glowww

Почему не работает document.querySelectorAll?

Не выписывает все элементы div с классом owl-item active.
document.addEventListener('DOMContentLoaded', () => {

	const mediaFiles = document.querySelectorAll('div.owl-item active');
	let i = 0

	Array.from(mediaFiles).forEach((file) => {
		file.onload = () => {
			console.log(file);
			i++

			percents.innerHTML = ((i * 100) / mediaFiles.length).toFixed(1)

			if(i === mediaFiles.length) {
				preloader.classList.add('preloader--hide')
				percents.innerHTML = 100
			}
		}
	})

})
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
bootd
@bootd
Гугли и ты откроешь врата знаний!
Во первых, селектор не верный.
Было
div.owl-item active
Нада
div.owl-item.active

Во вторых, вы по всей видимости, используете слайдер owl-carousel.

Инициализация библиотеки происходит после события DOMContentLoaded.
DOMContentLoaded говорит нам о том, что весь html загружен, а не то, что все скрипты загрузились и отработали.

После инициализации слайдера, карусель меняет классы динамически, т.е. в вашем коде не учитывается тот факт, что слайдер ещё не инициализировался. Ибо ваш код тупо срабатывает раньше инициализации слайдера! Поэтому вы ищите ещё не существующие селекторы!

Вам нужно прослушать событие у слайдера, которое символизирует, что слайдер проинициализирован и готов к работе. https://owlcarousel2.github.io/OwlCarousel2/docs/a..., а именно, судя по доке, вам нужно событие initialized.owl.carousel
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы