TL; DR
Cannon опубликовал измененный FullCalendar , который позволяет календарю охватывать более одного месяца, однако, похоже, что все эти месяцы переходят друг в друга и связан с более ранней версией FullCalendar.
Вот мой взгляд на 3 отдельных календаря, которые скрывают навигацию по двум календарям и синхронизируют месяцы в главном календаре: jsFiddle
Детали
Настройка 3 календарей - в моем случае основной календарь с меньшими календарями «смотреть назад / смотреть вперед» на следующие и предыдущие месяцы:
<div id='calendarPrev' style='width:50%'></div>
<div id='calendarCurrent' style='width:100%'></div>
<div id='calendarNext' style='width:50%'></div>
СУШИТ инициализацию календаря функцией с опционально скрывающей навигацией:
function initCalendar($calendarDiv, displayDate, isMain) {
$calendarDiv.fullCalendar({
defaultDate: displayDate,
header: {
left: 'title',
center: '',
right: isMain
? 'today prev,next'
: ''
},
events: ... eventdata callbacks etc
});
}
В $(document).ready
установите начальную дату трех календарей сегодня, но с интервалом ровно 1 месяц, скрывая навигацию по двум вторичным календарям. Затем подключите дополнительные обработчики событий к кнопкам next
и prev
основного календаря, которые синхронизируют 3 календаря:
$(document).ready(function() {
initCalendar($('#calendarCurrent'), moment(), true);
initCalendar($('#calendarPrev'), moment().subtract(1, 'months'), false);
initCalendar($('#calendarNext'), moment().add(1, 'months'), false);
$('body').on('click', 'button.fc-prev-button', function() {
$('#calendarPrev').fullCalendar('prev');
$('#calendarNext').fullCalendar('prev');
// allow main calendar event to propogate
});
$('body').on('click', 'button.fc-next-button', function() {
$('#calendarPrev').fullCalendar('next');
$('#calendarNext').fullCalendar('next');
// allow main calendar event to propogate
});
}