Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FullCalendar-日/月中的半天_Javascript_Css_Calendar_Fullcalendar_Fullcalendar 4 - Fatal编程技术网

Javascript FullCalendar-日/月中的半天

Javascript FullCalendar-日/月中的半天,javascript,css,calendar,fullcalendar,fullcalendar-4,Javascript,Css,Calendar,Fullcalendar,Fullcalendar 4,我有一个带有FullCalendar的日历,可以发布我的缺勤情况。 对于一些缺席,他们只有半天(上午或下午),而对于其他人,他们可以持续几天,但在12:00结束 因此,在每月视图中,目标是在不需要时显示事件,而不填充整个单元格: 因此,我有一个包含extendedProps的事件列表,让我知道是否需要修正它们的宽度以考虑到半天 由于此功能,我可以修改它们的宽度: eventRender: function (info) { // HALF DAY var half = info

我有一个带有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天。当然要考虑到屏幕的大小

对于只持续半天的活动,请确保它只填充了图中所示的半个盒子,但要进行更好的计算

问题是,我没有找到一种方法来做到这一点。我告诉自己,我应该已经根据屏幕的大小得到了一个单元格的宽度,然后我做了计算,但我遇到了麻烦

编辑:

我有一个只持续一天的活动。所以我给它一个选项“全天”=>true。 我们在“2011年2月2日星期六”的照片上看到,它是直接为全天设置的。没关系

现在,如果我有一个活动,应该持续2.5天。有必要在这两天的时间里,在“全天”一行中标记,但在最后一天,不是在“全天”中,而是在日程安排中标记。但是如果我将事件的选项“allDay”设置为true,那么它将在“all day”框中显示3天!
如果我去掉“全天”选项,那么在每周视图中,它将填充一整天,如“dim 03/11”当天的图片所示。而且它真的不美观

daygridMonth没有真正的时间或“时隙”概念。它将简单地显示每个事件相同的大小。如果您愿意,可以让它在文本中显示每个事件的完整开始/结束时间,但这是您最多能做的。如果您需要更详细的显示,请使用时间网格或时间线视图。我怀疑您永远无法通过设置CSS宽度在月视图中可靠地完成此操作-正如您所说,它没有考虑日历单元格的实际宽度,您无法提前知道(如果窗口调整大小,则可能会更改)。由于事件实际上不在创建day单元格的HTML元素中(而是覆盖在顶部),因此不能设置%width或类似的设置,以使其受容器约束。同样很难(虽然可能不是不可能,通过使用日期)确定事件将放置在哪个单元格上。实际上,正确的方法是分叉dayGridMonth插件的代码(毕竟它是开源的)并基于该代码创建自己的,但有额外的功能,以您想要的方式表示定时事件。但这需要做大量的工作,一方面要开发它,另一方面要保持它与fullCalendar的更新兼容。在开始之前,考虑是否真的需要这个特性,或者是否可以使用其他视图类型之一来传递这个信息。实际上,屏幕大小的问题将持续下去。我还认为没有办法在每月视图上可靠地显示此类事件。很遗憾像FullCalendar这样的插件没有想到这一点!所以我没有选择为一个应该持续2.5天的活动显示3整天。我想细节会出现在《每周视图》上?但我注意到,对于一个1.5天的活动,例如,在每周视图上,要么该活动在这两天显示为“全天”,要么它将占用当天的所有日程,并在第二天占用彼此的一半。你明白我的意思吗?