前端组件库—— 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

相关文章
|
6月前
|
资源调度 前端开发 JavaScript
前端组件库—— FullCalendar 知识点大全(一)
教程来源 http://htnus.cn FullCalendar 是一款功能强大、高度可定制的开源 JavaScript 日历库,支持月/周/日/列表/时间轴等多视图,提供拖拽、缩放、事件管理、资源调度等企业级能力,广泛应用于日程、预约、排班等场景,Vue/React/Angular 全支持。
|
前端开发 UED
你需要知道的 CSS 技巧:图片篇2 你的图片裂开了怎么办?
你需要知道的 CSS 技巧:图片篇2 你的图片裂开了怎么办?
1716 0
|
2月前
|
存储 人工智能 小程序
【新版】阿里云 对象存储服务 OSS产品功能介绍及配置价格表
互联网业务、小程序、网站、AI业务会产生海量图片、视频、音频、文档、日志、模型权重文件等非结构化数据,如果使用服务器本地磁盘存储,会面临磁盘容量上限、数据丢失风险、扩容困难、对外分发带宽成本高、多服务器之间数据同步复杂等一系列痛点。对象存储服务OSS是面向海量非结构化数据的全托管云上存储服务,不限制文件大小与文件数量,数据可靠性可达12个9,服务可用性达到99.995%,支持多种存储类型,实现热温冷数据分层存储,配套完整权限、加密、生命周期、数据处理能力,广泛用于网站静态资源托管、音视频素材存储、AI数据集存放、日志归档、备份文件保存、数据湖底座等各类业务场景。
509 0
|
6月前
|
资源调度 前端开发
前端组件库—— FullCalendar 知识点大全(三)
教程来源 http://fndvx.cn FullCalendar提供丰富交互回调(如dateClick、eventClick、eventDrop、loading、datesSet等),支持事件拖拽、数据加载、视图切换响应;配合Scheduler插件还可实现资源调度与自定义时长视图,满足会议室预订、排班等复杂场景需求。
|
8月前
|
人工智能 前端开发 Serverless
不用写一行代码!阿里云上线 Qwen3 一键部署,秒开大模型对话界面
通义千问Qwen3正式开源8款混合推理模型,含2款MoE(235B/30B)和6款Dense(0.6B–32B),支持119种语言、思考/非思考双模式,在代码、数学等基准表现优异。依托阿里云函数计算,提供vLLM/SGLang/Ollama等多种部署方式,开箱即用。(239字)
1044 23
|
Linux Windows
windows下的包管理器scoop
windows下的包管理器scoop
441 0
|
存储 JavaScript 前端开发
Vue中通过集成Quill富文本编辑器实现公告的发布。Vue项目中vue-quill-editor的安装与使用【实战开发应用】
文章展示了在Vue项目中通过集成Quill富文本编辑器实现公告功能的完整开发过程,包括前端的公告发布、修改、删除操作以及后端的数据存储和处理逻辑。
Vue中通过集成Quill富文本编辑器实现公告的发布。Vue项目中vue-quill-editor的安装与使用【实战开发应用】
|
前端开发 JavaScript
前端 JS 经典:文件流下载
前端 JS 经典:文件流下载
1614 1

热门文章

最新文章