Календарь для ввода месяца и года на JavaScript

Понадобилось тут странное - календарь для выбора только месяца и года. Написал простенький контрольчик. Появляется при клике на указанный DOM объект. Можно указать, с какой стороны объекта вылазить.

Причесанную версию, к сожалению, выложить не могу - ибо ушел в продакшн, ну а не причесанную - выкладываю.

Код короткий, понятный - причесать - дело 5 минут. Главное – работает нормально даже не причесанный :)

События можно поглядеть в консоли браузеры.

Вот оно

Нажми Меня

API


Создание

var ym = ymCal(
	obj,
	container,
	direction,
	month,
	year,
	handler,
	zindex,
	distance
);

objDOM объект, при клике на котором будет показываться календарь
containerDOM объект, где будет располагаться DOM календаря (может быть опущен - тогда будет body)
directionстрока, обозначающая направление открытия left, right, top, bottom (может быть опущен - тогда будет right)
monthвыбранный месяц (может быть опущен - тогда будет текущий месяц или 0 - тогда будет не выбран)
yearвыбранный год (может быть опущен - тогда будет текущий год или 0 - тогда будет не выбран)
handlerфункция обработки событий (может быть опущена)
zindexz-index основного слоя календаря(может быть опущен - тогда будет 100)
distanceсмещение относительно выбранного направления открытия, возможно отрицательное (может быть опущено - тогда будет 5 px)
Возвращает объект с методами для данного календаря.

Под "опущено" подразумевается значение undefined или null.

Функция обработки событий
function eventsHandler( event, month, year, misc ) { ... }

event
createdсоздание
showпоказ
hideскрытие
okнажатие кнопки ОК
cancelнажатие кнопки ОТМЕНА
outsideнажатие вне календаря
monthвыбранный месяц (0 если не выбран)
yearвыбранный год (0 если не выбран)
miscточно такой-же объект, как возвращаемый методом get

Методы: очистить

ym.clear();
Снимает выбор месяца и года.


Методы: получить значение

ym.get();
Вернет объект со значениями календаря:

cMonthтекущий месяц
cYearтекущий год
sYearминимальный показываемый год
monthвыбранный месяц или 0, если нет
yearвыбранный год или 0, если нет
objDOM объект, при клике на который показывается календарь
domDOM объект календаря
interfaceуказатель на объект с методами календаря


Методы: установить значение

ym.set( month, year, sYear, cMonth, cYear );
Устанавливает внутренние значения календаря:

cMonthтекущий месяц
cYearтекущий год
monthвыбранный месяц или 0, если нет
yearвыбранный год или 0, если нет
sYearминимальный показываемый год

Любое из значений можно опустить - тогда оно не будет изменено.


Методы: показать

ym.show( state );
Показывает / скрывает календарь:

statetrue - показать, false - скрыть


Скачать ym.zip, версия от 28.07.15

Все файлы календаря одним архивом.
История версий:

18.08.15
  • первый публичный релиз
скачать

18.08.2015, Protocoder
Написать комментарий