Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нужно сбросить счетчик в начало (Зациклить галерею). (https://javascript.ru/forum/misc/76318-nuzhno-sbrosit-schetchik-v-nachalo-zaciklit-galereyu.html)

AndriiS 28.12.2018 02:42

Нужно сбросить счетчик в начало (Зациклить галерею).
 
Всем привет!

Делаю простую галерею. Нажал на картинку, - открылась следующая.
Реализовал прокрутку при помощи счетчика. Помогите его сбросить. После последнего объекта он продолжает считать дальше, а я хочу вернуть его в начало.


'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);
}

Malleys 28.12.2018 02:57

Вместо на 83 строчке
count++;

используйте это
count = ((count + 1) % galleryItems.length + galleryItems.length) % galleryItems.length;

или если вы не собираетесь использовать ничего другого вместо 1, то это
count = (count + 1) % galleryItems.length;


Тема уже поднималась https://javascript.ru/forum/showthre...108#post501108

AndriiS 28.12.2018 03:05

Malleys,
Вы использовали остаток от деления. Я понял. Тогда счетчик может расти бесконечно, а результат будет всегда от 0 до 9 всегда. Все просто оказалось.

Выручили, Большущее спасибо!


Часовой пояс GMT +3, время: 03:22.