Простой календарик полностью генерируется яваскриптом. Кнопки позволяют перелистывать по месяцам.
С помощью кнопки «+ Calendar» можно добавить на страницу ещё кучу календариков. Каждый является независимым объектом с одинаковыми методами.
Описание
Объект класса Calendar
создается с помощью конструктора Calendar
, при запуске которого возвращается HTML код календаря, который можно вставить на страницу.
Каждый объект обладает собственными свойствами: год, месяц, сегодняшняя дата, список дней. Свойства год, месяц и список дней создаются из текущей даты.
Список дней состоит из 42 дат. Шесть недель по семь дней. Показываются дни предыдущего месяца, начиная с понедельника, и следующего месяца до конца таблицы.
Методы календаря, благодаря прототипному методу наследования, хранятся в
свойстве prototype
конструктора Calendar
.
При создании нового календаря последовательно запускаются методы create
и showMonth
.
Метод create
создает тело календаря, пустую таблицу с днями,
строку заголовка без текста и кнопки «вперед»-«назад». Назначает стили создаваемым объектам и устанавливает обработчики событий.
Метод showMonth
заполняет заголовок и ячейки таблицы календаря, добавляя форматирование к дням предыдущего и следующего месяца с помощью атрибутов.
При нажатии кнопок назад или вперед запускаются соответственно методы setPrevMonth
и setNextMonth
, которые изменяют свойства объекта «текущий год» и «текущий месяц» . После чего заново запускается метод showMonth
, заполняющий тело и заголовок календаря данными выбранного месяца.