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

FullCalendar页面刷新后显示异常,点击视图按钮或调整窗口才恢复

FullCalendar刷新后渲染异常问题解决

问题描述

页面刷新后日历无法正常展示,只有点击Month、Week、Day等操作按钮,或者调整浏览器窗口大小时才能正常显示,页面再次刷新后问题复现。
问题截图:
日历问题截图

问题根因

FullCalendar执行calendar.render()初始化时,目标容器#leave_calendar尚未完成最终尺寸计算,导致日历初始渲染尺寸异常。触发视图切换、窗口resize操作时,FullCalendar会自动重新计算布局,因此显示恢复正常。

修复方案

方案1:调整初始化时机(优先推荐)

将初始化逻辑从DOMContentLoaded事件迁移到window.load事件,确保所有样式资源加载完成、容器尺寸计算完毕后再初始化日历,同时添加强制更新尺寸逻辑做双重保险:

window.addEventListener('load', function() {
  var calendarEl = document.getElementById('leave_calendar');
  var calendar = new FullCalendar.Calendar(calendarEl, {
    initialView: 'dayGridMonth',
    height: 650,
    headerToolbar: {
      left: 'prev,next today',
      center: 'title',
      right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek'
    },
    navLinks: true,
    nowIndicator: true,
    selectable: true,
    dayMaxEvents: true,
    events: [
      {
        title: 'Frank',
        start: '2021-09-17',
        end: '2021-09-21',
      },
    ]
  });
  calendar.render();
  // 强制重新计算日历尺寸
  calendar.updateSize();
});

方案2:适配容器隐藏场景

如果日历容器默认处于隐藏状态(如放在tab页、折叠面板内),需要在容器第一次切换为显示状态的时机,手动调用calendar.updateSize()更新布局。

方案3:样式检查

确认自定义类leave-calendar未设置display: none等会影响初始尺寸计算的属性,也可尝试将配置项height改为'auto'适配自适应高度场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:24:03