Jquery FullCalendar - AgendaWeek 视图中可用时间段的默认背景和文本
Jquery FullCalendar - Default Background and Text for Available TimeSlots in AgendaWeek view
我正在使用 jquery FullCalendar agendaWeek 视图(没有其他视图)。
http://fullcalendar.io/views/agendaWeek/
我将实现 3 个 eventSources(每个都有不同的背景颜色)。
所有事件都将是 backgroundEvents。
http://fullcalendar.io/docs/event_rendering/Background_Events/
总结:我想实施一个标准周时间表,有 1 小时的时间段,如果时间可用则为绿色背景,如果时间不可用则为红色。
极其简单。
问题 1: 我想为所有可用时间段(= 没有事件的时间段)设置绿色背景。
问题 2: 我想在每个可用时间段内设置默认 "Foo" 文本。
代码如下:
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
defaultDate: '2015-02-12',
slotDuration: '00:60:00',
minTime: "08:00:00",
maxTime: "22:00:00",
defaultView: 'agendaWeek',
lang: "it",
height: "auto",
allDaySlot: false,
axisFormat: 'H:mm',
editable: true,
events: [
{
id: 'Meeting1',
start: '2015-02-11T10:00:00',
end: '2015-02-11T11:00:00',
rendering: 'background',
backgroundColor: 'red'
},
{
id: 'Meeting2',
start: '2015-02-13T15:00:00',
end: '2015-02-13T16:00:00',
rendering: 'background',
color: 'red'
},
]
});
请注意(如上所述),在实际项目中,事件数据将来自 3 ajax 个来源......但是(出于这个特定问题的目的)上面的代码作为数组传递。
对于您的第一个问题,您可以使用以下方法更改颜色 CSS:
.fc-widget-content {
background-color: green;
}
.fc-axis {
background-color: white;
}
.fc-bgevent {
opacity: 1;
}
选中显示您想要的结果的 this jsfiddle。
你的第二个问题比较复杂,我还没有找到简单的解决办法。您需要知道日历是通过表格构建的,每个时间段都有两个单元格(<td>
)。一个是时间轴(例如:09:00、10:00、11:00),另一个是所有天的事件。
这意味着您没有每个 timeslot/day 的单元格。即使你使用jQuery或CSS,每个时隙最多只能有一个"Foo"。
事件是 position: absolute
位于单元格顶部的 div。
解决您的问题的一种方法是(在服务器端)为每个可用的时间段创建一个具有绿色背景和 "Foo" 文本的事件。但是,这可能会增加呈现日历所需的时间。
我正在使用 jquery FullCalendar agendaWeek 视图(没有其他视图)。
http://fullcalendar.io/views/agendaWeek/
我将实现 3 个 eventSources(每个都有不同的背景颜色)。
所有事件都将是 backgroundEvents。
http://fullcalendar.io/docs/event_rendering/Background_Events/
总结:我想实施一个标准周时间表,有 1 小时的时间段,如果时间可用则为绿色背景,如果时间不可用则为红色。
极其简单。
问题 1: 我想为所有可用时间段(= 没有事件的时间段)设置绿色背景。
问题 2: 我想在每个可用时间段内设置默认 "Foo" 文本。
代码如下:
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
defaultDate: '2015-02-12',
slotDuration: '00:60:00',
minTime: "08:00:00",
maxTime: "22:00:00",
defaultView: 'agendaWeek',
lang: "it",
height: "auto",
allDaySlot: false,
axisFormat: 'H:mm',
editable: true,
events: [
{
id: 'Meeting1',
start: '2015-02-11T10:00:00',
end: '2015-02-11T11:00:00',
rendering: 'background',
backgroundColor: 'red'
},
{
id: 'Meeting2',
start: '2015-02-13T15:00:00',
end: '2015-02-13T16:00:00',
rendering: 'background',
color: 'red'
},
]
});
请注意(如上所述),在实际项目中,事件数据将来自 3 ajax 个来源......但是(出于这个特定问题的目的)上面的代码作为数组传递。
对于您的第一个问题,您可以使用以下方法更改颜色 CSS:
.fc-widget-content {
background-color: green;
}
.fc-axis {
background-color: white;
}
.fc-bgevent {
opacity: 1;
}
选中显示您想要的结果的 this jsfiddle。
你的第二个问题比较复杂,我还没有找到简单的解决办法。您需要知道日历是通过表格构建的,每个时间段都有两个单元格(<td>
)。一个是时间轴(例如:09:00、10:00、11:00),另一个是所有天的事件。
这意味着您没有每个 timeslot/day 的单元格。即使你使用jQuery或CSS,每个时隙最多只能有一个"Foo"。
事件是 position: absolute
位于单元格顶部的 div。
解决您的问题的一种方法是(在服务器端)为每个可用的时间段创建一个具有绿色背景和 "Foo" 文本的事件。但是,这可能会增加呈现日历所需的时间。