You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FullCalendar非全天事件无法调整大小问题求助

解决FullCalendar非全天事件无法调整大小的问题

嘿,我之前也踩过FullCalendar这个坑,给你几个实用的排查点和解决方案,应该能帮你搞定:

  • 检查事件的时间格式是否规范
    非全天事件(allDay: false)必须包含精确的时分秒信息,比如start: '2024-05-20T10:00:00'和end: '2024-05-20T12:00:00'。如果只传YYYY-MM-DD的纯日期格式,FullCalendar会默认把它当成全天事件处理,自然就没法显示调整图标了。

  • 确认全局与事件级别的编辑权限
    首先要确保FullCalendar的全局配置里开了editable: true,这是所有编辑操作(拖拽、调整大小)的基础。另外,每个非全天事件最好单独设置durationEditable: true,避免全局配置被局部规则覆盖。

  • 切换到时间视图测试
    月视图(month)默认不会显示非全天事件的调整图标,你得切换到时间网格视图(比如timeGridWeek、timeGridDay)才能看到调整手柄。可以把defaultView设为timeGridWeek试试效果。

  • 排查CSS样式冲突
    有时候自定义CSS会把FullCalendar的调整图标(类名fc-event-resizer)给隐藏或者覆盖了。打开浏览器开发者工具,检查事件元素的样式,看看这个类是不是被display: none或者其他样式影响了。

给你一个修正后的代码示例参考:

$(document).ready(function() {
  $('#calendar').fullCalendar({
    editable: true, // 全局开启编辑功能
    defaultView: 'timeGridWeek', // 默认用时间网格周视图
    events: [
      {
        title: '可调整的非全天事件',
        start: '2024-05-20T10:00:00',
        end: '2024-05-20T12:00:00',
        allDay: false,
        durationEditable: true // 允许该事件调整时长
      },
      {
        title: '全天事件',
        start: '2024-05-21',
        end: '2024-05-22',
        allDay: true
      }
    ]
  });
});

另外,你提到设为allDay: true调整后会保持全天状态,这是正常的——全天事件的时间范围是按日期计算的,调整后还是会维持全天属性。如果需要调整后变成非全天,得在eventResize回调里手动修改事件的allDay属性和时间格式,比如用Moment.js处理成带时分秒的时间。

内容的提问来源于stack exchange,提问作者Pixcelleen88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:28:59