FullCalendar jQuery 行事曆套件,能透過 Ajax 來取得資料配置成為行事曆,讓使用都以點擊或是拖曳的方式觸發事件。這套件除了可以快速產生相關的架構外,主要還有自適應的效果,對於網站開發是個很方便的套件,可大幅減少開發的時間。
 
20171214 / FullCalendar 現在的最新版本為 3.7.0,如果使用上 fullcalendar.css 與 fullcalendar.min.js 外 最重要的就是 Moment.js (官方中文、英文) 這支 JavaScript 日期處理類庫的插件,如果少了他無法使用 FullCalendar ,另外 CDN 也有 zh-tw.js 可以直接將外觀改成繁中的語系,另外也有其他的語系可以使用。
1-基本運用 Basic Usage
1 2 3 4  | https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.7.0/fullcalendar.min.css https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment.min.js https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.7.0/fullcalendar.min.js https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.7.0/locale/zh-tw.js  | 
1  | $("#calendar").fullCalendar({});  | 
See the Pen FullCalendar-jQuery-行事曆套件 by Jimmy_Wu (@Jimmy_Wu) on CodePen.
1-1-選項 Options
FullCalendar 的大多數文檔描述了影響日曆的外觀或行為的選項。選項通常在日曆初始化時設置,如下所示:
1 2 3  | $('#calendar').fullCalendar({     weekends: false // will hide Saturdays and Sundays });  | 
See the Pen FullCalendar-jQuery-行事曆套件-選項-顯示週末 by Jimmy_Wu (@Jimmy_Wu) on CodePen.
1-2-回呼函式/回調函數 Callbacks
jQuery-Callback 的說明
 回調函數和配置有幾分相似,執行某些操作的時候會觸發回調。下面的例子中,用戶點擊日程表的某一天,會彈出一個警告提示:
1 2 3 4 5  | $('#calendar').fullCalendar({     dayClick: function() {         alert('a day has been clicked!');     } });  | 
See the Pen FullCalendar-jQuery-行事曆套件-選項-回呼函式/回調函數 Callbacks by Jimmy_Wu (@Jimmy_Wu) on CodePen.
1.3-方法 Methods
「方法」是用來操作日程表的,直接使用fullCalendar命令可以調用方法,下面的例子會讓日程表切換到下一個月/周/日視圖:
2-其他參數
2-1-普通顯示設置
2-1-1-header
1 2 3 4 5  | header: {  left: 'prev,next today',  center: 'title',  right: 'month,agendaWeek,agendaDay' }  | 
See the Pen FullCalendar-jQuery-行事曆套件-選項-header by Jimmy_Wu (@Jimmy_Wu) on CodePen.
2-1-2-weekends
是否顯示假日
 weekends: false
2-1-3-editable
是否可編輯,預設為 true (測試預設並不是 true 而是 false)
 editable: true,
2-1-4-darggable
是否可拖曳,預設為 true
 darggable: true,
2-1-5-defaultView
預設顯示的模式,值有 “month”(月)、”basicWeek”(週-沒帶時程分格式)、”basicDay”(日-沒帶時程分格式)、agendaWeek(週-有帶時程分格式)、agendaDay(日-有帶時程分格式), 預設值:”month”
 defaultView: "agendaDay",
2-1-6-buttonText
自定按鈕與日期中文化新舊版都可用,但新版 locale/zh-tw.js 需註解成預設英文
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  | buttonText:{           prevYear: '去年',            nextYear: '明年',           today: '今天',           month: '月',           week: '周',           day: '日'         },         dayNamesShort:['周日', '周一', '周二', '周三','周四', '周五', '周六'],          monthNames:['一月','二月', '三月', '四月', '五月', '六月', '七月','八月', '九月', '十月', '十一月', '十二月'],         monthNamesShort: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],         dayNames:['星期日', '星期一', '星期二', '星期三','星期四', '星期五', '星期六'],         titleFormat:{            month: 'MMMM yyyy',            week: "MMM d[yyyy]{'—'[ MMM] d yyyy}",           day: 'dddd, MMM d, yyyy'          },  | 
2-1-6-height
height 指定對象 id=”calendar” 內元素於指定高度值內,超過使用溢位 overflow-y: scroll;
 height: 600,
2-1-7-aspectRatio
設定行事曆高度比率 (比率越小,高度越高),超過使用溢位 overflow-y: scroll;
 aspectRatio: 3,
2-1-8-themeSystem
使用bootstrap3風格
 themeSystem: 'bootstrap3',
2-1-9-businessHours
強調日曆中的某些時間段,比如默認情況下,工作日週一-週五上午9點-下午5點。
 工作日會白色區塊,非工作日會是灰色區塊
1 2 3 4 5  | businessHours: {  dow: [ 1, 2, 3, 4, ], // 週一 - 週四  start: '10:00', // 上午10點開始  end: '18:00', // 下午18點結束 },  | 
2-1-10-events
allDay
 是否為整日事件,值為 true / false
strat
 事件的開始日期時間
end
 事件的結整日期時間
color
 背景和邊框顏色
borderColor
 邊框顏色
BackgroundColor
 事件的背景顏色
textColor
 事件的文字顏色
title
 事件顯示的標題
url
 使用者按下事件時要開啟的 url
editable
 是否可拖曳
事件寫法版本不同,原本格式 start: ‘2017-12-15 2:00’ 新版不吃要加二十四時制,前面要加 T
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21  | events: [   {     title: '例行會議',     start: '2017-12-15T12:00',     allDay : false   },   {     title: '日本旅遊',     start: '2017-12-28',     end: '2017-12-31'   },   {     // 使用變數 date = new Date() 時間物件來及用現在時間的年月,而日自訂為 25 日,     title: '25號連到 Google 查看最新新聞',     start: new Date(y, m, 25),     borderColor:'red',     backgroundColor: 'red',     color: '#fff',     url: 'https://www.google.com.tw/'   } ]  | 
1 2 3 4  | var date = new Date(); var d = date.getDate(); var m = date.getMonth(); var y = date.getFullYear();  | 
See the Pen FullCalendar-jQuery-行事曆套件-其他設定混合使用 by Jimmy_Wu (@Jimmy_Wu) on CodePen.
資料來源
fullcalendar 官方英文
 helloweba-FullCalendar搜尋結果
 helloweba-FullCalendar日曆插件說明文檔 (2013年09月15日)
 helloweba-最新FullCalendar中文文檔 (2017年10月19日)
 [Day 21]FullCalendar – 輕鬆完成專業級行事曆
 codepen-FullCalendarの日本語化やオプションいろいろ (語系日文化)
