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