@Alexey1307

Как избавиться от фантома?

Вообщем почти написал свой первый календарь!) Есть один момент, который не могу решить:
при перелистывании месяца, когда календарь доходит до декабря, январь следующего года не отрисовывается - появляется как бы 'фантом' - выводится название месяца "Январь" и верхняя строка - 'дни недели'. Чтобы получить январь - нужно пролестнуть на Февраль, а потом вернуться!
Пробовал дебажить, на сколько это позволяет пока мой небольшой опыт, вижу что значение curentMonth - при перелистывании месяца всегда увеличивается на еденицу, но при переходе с декабря на январь скачит - сначала curentMonth ==12, потом сразу же curentMonth ==0.
Как исправить?
Календарь здесь
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
john36allTa
@john36allTa
alien glow of a dirty mind
Ошибка здесь:
62b98b52c38b3827391722.png
Январь это нулевой месяц. 0 - 1 == -1. Поэтому и не срабатывает.

Вот пример на функции prev.click:
prev.addEventListener('click', ()=>{
    // правильно current
    if (curentMonth == 0) curentYear -= 1
    curentMonth = (12 + curentMonth - 1) % 12
    createCalendar(calendar, curentYear, curentMonth);
    months.innerHTML = monthsName[curentMonth];
    years.innerHTML = curentYear;
  })
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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