24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Кто шарит в джаваскрипт? Есть слайдер, все работает как надо, но когда добавляю следующие слайдеры,
Есть слайдер, все работает как надо, но когда добавляю следующие слайдеры, его кнопки крутят карточки первого. Как сделать чтобы джаваскрипт работал для каждого слайдера отдельно?
let isDragging = false, isAutoPlay = true, startX, startScrollLeft, timeoutId;
// Get the number of cards that can fit in the carousel at once let cardPerView = Math.round(carousel.offsetWidth / firstCardWidth);
// Add event listeners for the arrow buttons to scroll the carousel left and right arrowBtns.forEach(btn => { btn.addEventListener("click", () => { carousel.scrollLeft += btn.id == "left" ? -firstCardWidth : firstCardWidth; }); });
const dragStart = (e) => { isDragging = true; carousel.classList.add("dragging"); // Records the initial cursor and scroll position of the carousel startX = e.pageX; startScrollLeft = carousel.scrollLeft; }
const dragging = (e) => { if(!isDragging) return; // if isDragging is false return from here // Updates the scroll position of the carousel based on the cursor movement carousel.scrollLeft = startScrollLeft - (e.pageX - startX); }
// Clear existing timeout & start autoplay if mouse is not hovering over carousel clearTimeout(timeoutId); if(!wrapper.matches(":hover")) autoPlay(); }
const autoPlay = () => { if(window.innerWidth < 800 || !isAutoPlay) return; // Return if window is smaller than 800 or isAutoPlay is false // Autoplay the carousel after every 2500 ms timeoutId = setTimeout(() => carousel.scrollLeft += firstCardWidth, 25000); } autoPlay();
>>303893756 Делаю сайт по нужде. Всё понял, осталось слайдеры эти ебаные сделать. Вникать в синтаксис этого всего ради решения одной проблемы я охуею, это не хтмл с сиэсэсом
>>303893642 У тебя состояние всех каруселей в одной переменной, на переключение тоже одни и те же функции. Если ты не программист и просто свалилась задача, проще всего будет скопировать всё три раза и сделать startScrollLeft1, startScrollLeft2, startScrollLeft3 и т.д.
Ты нашёл ВСЕ кнопки: const arrowBtns = document.querySelectorAll(".wrapper i"); После чего на ВСЕ эти кнопки повесил один и тот же обработчик, которые не учитывает, какую карусель должен дёргать. Переписывай
>>303893978 Я не писал этот код, а дернул откуда-то, потому что его достаточно легко визуально изменить в отличии от всяких слик-слайдеров и оул-каруселей. Если бы он мог нормально размножаться всё было бы великолепно.
Можно как-то сделать, чтобы кнопки учитывали id класса карусели?
Есть слайдер, все работает как надо, но когда добавляю следующие слайдеры, его кнопки крутят карточки первого. Как сделать чтобы джаваскрипт работал для каждого слайдера отдельно?