一直在寻找在FullCalendar的月份视图中只显示当前周和下一周的方法。到目前为止,它似乎被建议作为即将推出的版本的一个功能,但与此同时,有人能破解它吗?
更新
多亏了末日的建议,我能够创建一个显示2周的自定义视图,从本周开始。您正在将可见的开始日期更改为今天的日期,并将行数更改为2。
function TwoWeeksView(element, calendar) {
var t = this;
// exports
t.render = render;
// imports
BasicView.call(t, element, calendar, 'month');
var opt = t.opt;
var renderBasic = t.renderBasic;
var formatDate = calendar.formatDate;
function render(date, delta) {
if (delta) {
addMonths(date, delta);
date.setDate(1);
}
var start = cloneDate(date, true);
start.setDate(1);
var end = addMonths(cloneDate(start), 1);
//var visStart = cloneDate(start);
var visStart = date;
var visEnd = cloneDate(end);
var firstDay = opt('firstDay');
var nwe = opt('weekends') ? 0 : 1;
if (nwe) {
skipWeekend(visStart);
skipWeekend(visEnd, -1, true);
}
addDays(visStart, -((visStart.getDay() - Math.max(firstDay, nwe) + 7) % 7));
addDays(visEnd, (7 - visEnd.getDay() + Math.max(firstDay, nwe)) % 7);
var rowCnt = Math.round((visEnd - visStart) / (DAY_MS * 7));
if (opt('weekMode') == 'fixed') {
addDays(visEnd, (6 - rowCnt) * 7);
//rowCnt = 6;
rowCnt = 2;
}
t.title = formatDate(start, opt('titleFormat'));
t.start = start;
t.end = end;
t.visStart = visStart;
t.visEnd = visEnd;
renderBasic(6, rowCnt, nwe ? 5 : 7, true);
}
}
最好的解决方案是实现您的自定义视图。
在一个新的JS中放入您自己定义的视图:
$.fullCalendar.views.twoweeks = TwoWeeksView;
function TwoWeeksView(element, calendar) {
// copy code from fullcalendar.js line 1960
}
fullCalendar 2的正确答案是修改basicWeek视图,如文档中所述:
$('#calendar').fullCalendar({
views: {
basicWeek: {
type: 'basic',
duration: {weeks: 2},
rows: 2
}
}
}
那里。简单:)
请参阅此处了解有关此完整日历自定义视图的更多信息
Jquery FullCalendar 2周视图Next prev按钮
答案是显示两个日历,一个是当前周,另一个是后一周。
我建议你破解我在这把小提琴上所做的:http://jsfiddle.net/Doomsday/M3YP3/1/
最新版本使变得更加简单(v2.2.6)
您也可以在有一个自定义的两周视图的地方签出这个git,该视图使用next/prev按钮一次移动1周(或设置为任何选项)。
https://github.com/marc-gist/fullcalendar
编辑:要点似乎不再适用于其他版本的fullcalendar;但请查看文档,通过选项值轻松设置周视图。