【发布时间】:2018-04-04 04:25:32
【问题描述】:
我使用了完整的日历时间轴视图。时间线视图每 30 秒自动刷新一次,使用 setInterval(function () { refreshEvents(); }, 30000);
对于刷新,我使用了 removeEvents 和 addEventSource 所以我需要在 removeEvents 之前获取时间线视图的垂直滚动位置,并在 addEventSource 之后恢复滚动位置,因为每个刷新滚动位置都会丢失
那么如何在自动刷新事件时恢复时间线视图的滚动位置
见以下代码:
$('#divCalendar').fullCalendar({
resourceAreaWidth: 200,
allDaySlot: false,
timeFormat: 'HH:mm', // uppercase H for 24-hour clock
slotLabelFormat: 'HH:mm', // uppercase H for 24-hour clock
eventDurationEditable: false,
header: {
left: 'today prev,next',
center: 'title',
right: 'timelineDay',
},
views: {
timelineDay: {
type: 'timeline',
slotDuration: '00:02:00'
}
},
resources: function (callback) {
// necessary hack
var view = $('#divCalendar').fullCalendar('getView');
$.ajax({
url: '/Dispatcher/GetTimeLineDriverList',
dataType: 'json',
cache: false,
data: {
start: view.start.format(),
end: view.end.format()
}
}).then(function (resources) {
callback(resources);
});
},
events: {
url: '/Dispatcher/GetDriverTripSchedules'
},
});
function refreshEvents() {
var calenderDate = $('#divCalendar').fullCalendar('getDate').format("MM-DD-YYYY");
$.ajax({
url: '/Dispatcher/GetDriverTripSchedules',
success: function (response) {
$('#divCalendar').fullCalendar('removeEvents');
$('#divCalendar').fullCalendar("addEventSource", response);
}
});
}
setInterval(function () { refreshEvents(); }, 30000);
【问题讨论】:
-
我也面临同样的问题
-
我试过这个: var scrollPosition = document.querySelector('.fc-scroller').scrollTop;用于获取当前滚动位置,但它总是返回 return 0