FullCalendar Scheduler:slotDuration低于1分30秒失效问题求助
FullCalendar Scheduler slotDuration 无法设置低于1分30秒的问题解答
嘿,这个情况我之前也碰到过,这不是Bug,是FullCalendar Scheduler的预期设计,主要是为了防止时间轴上的标签过于密集,影响界面可读性。不过你完全可以把slotDuration降到30秒,只需要配合调整一个参数就行,我给你一步步说:
为什么会自动变回小时间隔?
FullCalendar有个自动优化逻辑:当你设置的slotDuration小于00:01:30时,它会自动把slotLabelInterval(时间轴上显示的时间标签间隔)调整为01:00:00,同时视觉上合并时间槽,让你看起来像是回到了小时间隔。但其实这个时候slotDuration的设置是生效的——事件的定位还是按你设置的短间隔来,只是视觉显示被优化了。
怎么设置30秒的slotDuration?
要让时间槽真正按30秒划分,同时保持界面可读性,你需要手动指定slotLabelInterval参数,覆盖自动优化的逻辑。比如:
$(function() { $('#calendar').fullCalendar({ defaultView: 'timelineDay', header: { left: 'prev,next', center: 'title', right: 'timelineDay,timelineWeek,timelineMonth' }, resourceLabelText: 'Rooms', resources: 'https://fullcalendar.io/demo-resources.json', events: [{ id: '1', resourceId: 'a', start: '2018-05-24T06:00:00', end: '2018-05-24T06:00:30', // 改成30秒的事件,更直观看到效果 title: '30-second Event' }], slotDuration: '00:00:30', // 核心:设置为30秒 slotLabelInterval: '00:01:00', // 手动指定标签间隔,比如每分钟显示一个标签 slotMinTime: '06:00:00', // 可选:限制显示的时间范围,减少渲染压力 slotMaxTime: '06:30:00', contentHeight: 'auto' // 让日历自动适应高度,避免内容被截断 }); });
注意事项
- 如果你把
slotLabelInterval设置得和slotDuration一样(比如都是30秒),时间轴上的标签会非常密集,几乎没法看,所以建议根据实际需求选择合适的标签间隔,比如1分钟、5分钟,平衡精度和可读性。 - 更小的
slotDuration会生成更多的时间槽,可能会增加页面的渲染压力,所以如果不需要显示全天的时间,可以通过slotMinTime和slotMaxTime限制显示的时间范围,提升性能。
内容的提问来源于stack exchange,提问作者Adam Baranyai
相关产品推荐
相关产品推荐

