前端组件库—— FullCalendar 知识点大全(二)

简介: 教程来源 http://lemci.cn 本文详解 FullCalendar 核心配置与事件管理:涵盖视图、事件、时区本地化、交互等配置;支持自定义视图、按钮文本及多语言;提供事件对象结构、多种数据源(静态/JSON/回调)、extendedProps 扩展属性、动态增删改及渲染定制,助力高效日历开发。

三、核心配置参数

FullCalendar 提供了丰富的配置选项,用于定制日历的外观和行为。以下是最常用的配置参数分类详解。

3.1 视图配置
image.png
3.2 事件配置
image.png
3.3 时间与本地化配置
image.png
3.4 交互配置
image.png
3.5 自定义视图
当需要创建具有特定时长的自定义视图时,可以通过 views 参数进行配置。

var calendar = new Calendar(calendarEl, {
  defaultView: 'resourceTimelineCustom',
  views: {
    resourceTimelineCustom: {
      type: 'resourceTimeline',
      duration: { days: 4 }    // 自定义视图时长为4天
    }
  }
});

3.6 按钮文本自定义与本地化

var calendar = new Calendar(calendarEl, {
  buttonText: {
    today: '今天',
    month: '月',
    week: '周',
    day: '日',
    list: '列表'
  },
  monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  monthNamesShort: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
  dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
  dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
});

3.7 视图特定配置
agenda 视图特有配置:

allDaySlot:是否显示“全天”区域,默认 true

allDayText:自定义全天区域显示文本,默认 'all-day'

slotEventOverlap:事件是否允许重叠,默认 true

slotDuration:时间槽间隔(分钟)

minTime / maxTime:可视区域的时间范围

四、事件数据管理

4.1 事件对象(Event Object)
事件对象是 FullCalendar 中最核心的数据结构,用于存储每个日程事件的信息。
image.png
image.png
4.2 事件数据源(Event Sources)
FullCalendar 支持从多种数据源获取事件数据。

方式一:静态数组

events: [
  { title: '事件 1', start: '2024-01-01' },
  { title: '事件 2', start: '2024-01-05', end: '2024-01-07' }
]

方式二:JSON API

events: '/api/events'

方式三:回调函数

events: function(info, successCallback, failureCallback) {
  $.ajax({
    url: '/api/events',
    data: {
      start: info.start.valueOf(),
      end: info.end.valueOf()
    },
    success: function(data) {
      successCallback(data);
    }
  });
}

4.3 自定义事件属性
可以通过 extendedProps 为事件添加自定义属性。

var calendar = new Calendar(calendarEl, {
  events: [
    {
      title: 'Meeting',
      start: '2023-10-10T10:00:00',
      extendedProps: {
        description: 'Discuss project updates',
        priority: 'high'
      }
    }
  ],
  eventContent: function(arg) {
    // 在渲染时访问自定义属性
    let description = arg.event.extendedProps.description;
    return { html: `<b>${arg.event.title}</b><br/><small>${description}</small>` };
  }
});

4.4 动态添加/更新/删除事件

// 添加事件
calendar.addEvent({
  title: '新事件',
  start: '2024-01-15',
  allDay: true
});

// 获取事件
var event = calendar.getEventById('event-id');

// 更新事件(方式一:使用 setProp 和 setDates)
event.setProp('title', '修改后的标题');
event.setDates('2024-01-20', '2024-01-22');

// 更新事件(方式二:使用 remove 后重新 add)
event.remove();
calendar.addEvent({ ...newEventData });

// 批量更新事件源
calendar.refetchEvents();

4.5 扩展事件属性与显示
如果需要在事件对象中添加额外的字段并在日历中显示,可以在渲染回调中处理。例如,向事件添加 description 字段并在日历中显示。

eventContent: function(arg) {
  let description = arg.event.extendedProps.description;
  let html = `<div class="fc-event-title">${arg.event.title}</div>`;
  if (description) {
    html += `<div class="fc-event-description">${description}</div>`;
  }
  return { html: html };
}

4.6 动态刷新事件数据
当后端数据变化时,可以调用以下方法刷新日历:

// 重新获取所有事件源的数据
calendar.refetchEvents();

// 移除特定事件
var event = calendar.getEventById('event-id');
event.remove();

// 添加新事件
calendar.addEvent({
  title: '新日程',
  start: '2024-01-20'
});

来源:
http://xcfsr.cn

相关文章
|
2月前
|
人工智能 自然语言处理 API
OpenClaw是什么?阿里云部署OpenClaw(Clawdbot)+百炼API配置保姆级教程(含避坑指南)
在AI工具遍地开花的2026年,大多数AI仍停留在“只说不做”的阶段——能陪你聊天、给你思路,却无法动手完成实际任务。而OpenClaw(曾用名Clawdbot、Moltbot)的出现,彻底打破了这一僵局。作为一款开源本地优先的AI代理平台,它就像一个“专属数字员工”,能通过自然语言指令,自动完成网页操作、邮件处理、代码调试、内容同步等一系列任务,真正实现“指令一句话,AI跑全程”。
1146 22
|
10月前
|
Web App开发 前端开发 JavaScript
前端新利器:CSS容器查询——让组件真正“自适应
前端新利器:CSS容器查询——让组件真正“自适应
536 83
|
8月前
|
JavaScript 前端开发
js小数运算出现的问题(精度丢失)及解决办法-亲测有效
JavaScript浮点数运算存在精度丢失问题,如0.1+0.2不等于0.3。原因是十进制小数转二进制时可能出现无限循环,导致舍入误差。本文提供一种精度处理方法,通过将小数转为整数运算后再还原,实现加减乘除的精确计算,解决常见浮点运算误差问题。
1326 0
|
存储 监控 数据可视化
常见的分布式定时任务调度框架
分布式定时任务调度框架用于在分布式系统中管理和调度定时任务,确保任务按预定时间和频率执行。其核心概念包括Job(任务)、Trigger(触发器)、Executor(执行器)和Scheduler(调度器)。这类框架应具备任务管理、任务监控、良好的可扩展性和高可用性等功能。常用的Java生态中的分布式任务调度框架有Quartz Scheduler、ElasticJob和XXL-JOB。
5813 66
|
JavaScript 前端开发
js获取url参数值的几种方式
js获取url参数值的几种方式
2707 157
|
Linux Windows
windows下的包管理器scoop
windows下的包管理器scoop
329 0
|
监控 安全 网络协议
这10款网络扫描工具,是个网工,都想全部安装!
这10款网络扫描工具,是个网工,都想全部安装!
3669 1
|
编解码 前端开发 JavaScript
前端css常用的几种布局方式(推)
前端css常用的几种布局方式(推)
469 1
|
SQL 存储 Python
Microsoft SQL Server 编写汉字转拼音函数
Microsoft SQL Server 编写汉字转拼音函数