FullCalendar 周视图中高亮指定日期与时间范围的完整实现方法-html教程

本文详解如何在 fullcalendar 的周视图(agendaweek)中,基于日期+时间条件动态高亮单元格,替代简单 dom 操作,确保跨版本兼容性与响应式渲染。

在 FullCalendar 中,直接操作 .fc-day 类选择器(如月视图中 $(‘.fc-day[data-date=”…”]’))在周视图(尤其是 agendaWeek 或 timeGridWeek)中不可靠——因为周视图的 DOM 结构以“时间轴行”(time slots)为核心,日期单元被拆分为多列小时/半小时区块,不存在统一的 data-date 属性容器。因此,必须借助官方提供的生命周期钩子进行精准控制。

✅ 推荐方案:使用 dayRender 钩子(v3)或 dayCellDidMount(v5+)

以下示例基于 FullCalendar v3(问题中代码风格匹配),若使用 v5/v6,请参考文末适配说明:

$('#calendar').fullCalendar({
  defaultView: 'agendaWeek',
  // 设置起止时间(支持 ISO 8601 字符串或 Moment 对象)
  dayRender: function(date, cell) {
    const startDate = moment('2023-04-02T09:00:00'); // 起始:4月2日 09:00
    const endDate   = moment('2023-04-06T17:30:00'); // 结束:4月6日 17:30

    // 判断当前渲染的日期单元是否落在目标范围内(含时间精度)
    if (date.isBetween(startDate, endDate, null, '[]')) {
      $(cell).css('background-color', 'rgba(143, 223, 130, 0.5)');
      // 可选:增强可访问性,添加 aria-label
      $(cell).attr('aria-label', '高亮时段:' + date.format('YYYY-MM-DD HH:mm'));
    }
  }
});

⚠️ 注意事项:dayRender 中的 date 参数是 当天 00:00:00 的 Moment 对象,仅含日期,不含具体时间点 —— 因此它适合按「整日」高亮;若需精确到小时/分钟(如仅高亮 14:00–16:00 区间),应改用 eventRender 或 slotLaneDidMount(v5+)配合自定义事件模拟。若需「时间维度高亮」(例如某天的 14:00–16:00 背景色),推荐创建透明占位事件(rendering: ‘background’):events: [{
start: ‘2023-04-03T14:00:00’,
end: ‘2023-04-03T16:00:00’,
rendering: ‘background’,
color: ‘rgba(143,223,130,0.5)’
}]

? FullCalendar v5/v6 适配提示

v5+ 已移除 fullCalendar() 方法,改用 @fullcalendar/interaction 等模块化包,且 dayRender 替换为 dayCellDidMount:

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » FullCalendar 周视图中高亮指定日期与时间范围的完整实现方法-html教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4023106+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4023106+
  • 本周更新: 0+
  • 最后更新: 2026-03-16