Нужно сбросить счетчик в начало (Зациклить галерею).
Всем привет!
Делаю простую галерею. Нажал на картинку, - открылась следующая. Реализовал прокрутку при помощи счетчика. Помогите его сбросить. После последнего объекта он продолжает считать дальше, а я хочу вернуть его в начало. 'use strict'; const galleryItems = [{ preview: "img/preview_320_01.jpg", fullview: "img/fullview_1280_01.jpg", alt: "new york" }, { preview: "img/preview_320_02.jpg", fullview: "img/fullview_1280_02.jpg", alt: "new york" }, { preview: "img/preview_320_03.jpg", fullview: "img/fullview_1280_03.jpg", alt: "new york" }, { preview: "img/preview_320_04.jpg", fullview: "img/fullview_1280_04.jpg", alt: "new york" }, { preview: "img/preview_320_05.jpg", fullview: "img/fullview_1280_05.jpg", alt: "new york" }, { preview: "img/preview_320_06.jpg", fullview: "img/fullview_1280_06.jpg", alt: "new york" }, { preview: "img/preview_320_07.jpg", fullview: "img/fullview_1280_07.jpg", alt: "new york" }, { preview: "img/preview_320_08.jpg", fullview: "img/fullview_1280_08.jpg", alt: "new york" }, { preview: "img/preview_320_09.jpg", fullview: "img/fullview_1280_09.jpg", alt: "new york" }, { preview: "img/preview_320_10.jpg", fullview: "img/fullview_1280_10.jpg", alt: "new york" } ]; const imageGallery = document.querySelector(".js__image__gallery"); // const fullViewUl = document.createElement('ul'); fullViewUl.classList.add('full-items'); fullViewUl.style.listStyleType = "none"; // const fullViewLi = document.createElement('li'); fullViewLi.classList.add('full-item'); // const fullViewImg = document.createElement('img'); fullViewImg.classList.add('full-img'); fullViewImg.setAttribute('src', galleryItems[0].fullview); fullViewImg.setAttribute('alt', galleryItems[0].alt); fullViewImg.style.width = "700px"; fullViewImg.style.height = "auto"; fullViewImg.style.cursor = "pointer"; // fullViewLi.appendChild(fullViewImg); fullViewUl.appendChild(fullViewLi); imageGallery.appendChild(fullViewUl); // // // document.addEventListener('click', hendler); let count = 0; function hendler() { if (event.target.nodeName !== 'IMG') return; count++; fullViewImg.setAttribute('src', galleryItems[`${count}`].fullview); fullViewImg.setAttribute('alt', galleryItems[`${count}`].alt); } |
Вместо на 83 строчке
count++; используйте это count = ((count + 1) % galleryItems.length + galleryItems.length) % galleryItems.length; или если вы не собираетесь использовать ничего другого вместо 1, то это count = (count + 1) % galleryItems.length; Тема уже поднималась https://javascript.ru/forum/showthre...108#post501108 |
Malleys,
Вы использовали остаток от деления. Я понял. Тогда счетчик может расти бесконечно, а результат будет всегда от 0 до 9 всегда. Все просто оказалось. Выручили, Большущее спасибо! |
Часовой пояс GMT +3, время: 03:22. |