我有一个带有FullCalendar的日历,可以让我发布我的缺席信息。 对于某些缺勤,他们只有半天(早上或下午),对于其他缺勤,他们可以持续几天,但在12:00结束。
因此,目标是在每月视图中显示事件,而不必在不需要时填充整个单元格:
因此,我有包含extendedProps的事件列表,让我知道是否需要校正它们的宽度以考虑半天。
对于这些,由于这个功能,我设法修改了它们的宽度:
eventRender: function (info) {
// HALF DAY
var half = info.event.extendedProps.halfDay;
if (half == true) {
// console.log(info);
var elementStyle = info.el;
jQuery(elementStyle).css('width', 50 + "px");
}
我有:
那很好,但是我需要改进该功能以考虑宽度的总大小,并进行计算以减小宽度。因为在这里我为它指定了宽度“ 50”。
例如:
一个持续2.5天的事件:一种计算,该计算确定月视图中日历上要占用的宽度,以使其不会代替3天,而是2.5天。当然要考虑屏幕的大小。
对于仅持续半天的事件,请确保该事件仅填充图像中的一半,但计算效果更好。
问题是我找不到解决办法。我告诉自己,我应该已经根据屏幕的大小获得了一个单元格的宽度,然后我进行了数学运算,但是我遇到了麻烦
编辑:
示例:我有一个活动仅持续一天。所以我给它一个选项'allDay'=> true。 我们在'Sat 02/11'那天的图片上看到,它是整天直接设置的。没关系!
现在,如果我有一个活动应持续2.5天。有鉴于此,有必要在两天内将其标记在“全天”行中,但在最后一天中,它不在“全天”中,而是要使他在计划表中处于良好状态。但是,如果我将事件的“ allDay”选项设置为true,则它将在“ all day”框中显示3天! 如果我取消选择“ allDay”,则在每周视图中,它将填满一整天,如“ dim 03/11”当天的图片所示。真的不美观