在Fullcalendar 2上,当我在星期之间导航时,我想在垂直滚动中保持相同的时间范围。例如,在下面的图像中,我最初看的是上午12点至下午3点。但是,当我按下下一个箭头转到下周时,它将在上午8点重置。
我知道我可以更改默认的开始时间
scrollTime: "08:00:00",
但是如何使垂直时间范围“固定”到我所在的位置呢?
最佳答案
不幸的是,这不是内置功能。有一种解决方法,但是上一周/下一周您总是会有些闪烁。
var scroll = -1,
viewNames = ['agendaWeek', 'agendaDay'];
$('#calendar').fullCalendar({
//...
eventAfterAllRender: function(view) {
if(scroll > -1 && viewNames.indexOf(view.name) !== -1)
//Use a setTimeout hack here because the scrollTime will be set after eventAfterAllRender is processed.
setTimeout(function(){
document.querySelector('.fc-agenda-slots').parentNode.parentNode.scrollTop = scroll;
}, 0);
},
viewDestroy: function(view) {
if(viewNames.indexOf(view.name) !== -1)
scroll = document.querySelector('.fc-agenda-slots').parentNode.parentNode.scrollTop;
}
//...
});
jsfiddle
该代码适用于FullCalendar v2。假定滚动div是
.fc-agenda-slots
div父级的父级。