Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.12.2018, 02:42
Интересующийся
Отправить личное сообщение для AndriiS Посмотреть профиль Найти все сообщения от AndriiS
 
Регистрация: 05.09.2018
Сообщений: 28

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

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


'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);
}
Ответить с цитированием
  #2 (permalink)  
Старый 28.12.2018, 02:57
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Вместо на 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, 28.12.2018 в 03:02.
Ответить с цитированием
  #3 (permalink)  
Старый 28.12.2018, 03:05
Интересующийся
Отправить личное сообщение для AndriiS Посмотреть профиль Найти все сообщения от AndriiS
 
Регистрация: 05.09.2018
Сообщений: 28

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

Выручили, Большущее спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно реализовать верстку и front end, под определенные экраны нужно сделать cms playsintez Работа 7 20.07.2018 16:21