【发布时间】:2018-06-21 13:28:27
【问题描述】:
我正在使用 Fullcalendar / Scheduler 在日历上显示一些事件。我从 REST 服务获取所有信息。
我知道 Fullcalendar 有一个方法可以检查一个事件是否与另一个事件重叠(它在使用 slotEventOverlap 属性时会这样做),因此它会根据事件的数量使其减少 50% 或更少。
我的问题是,有谁知道那个方法是什么.. 我需要实现的是,当日历上有两个重叠的事件时,它们应该是红色的。像这样的:
我在想,在库中的某个地方,当计算完成并设置 % 时,可以将一个新类添加到这些事件中,比如 fc-overlap,我可以自定义它。
或者有人对我如何实现这一点有任何想法吗?
我能找到的唯一解决方案是在获得事件列表后,在函数中解析它们,检查 startTime 和 endTime 是否重叠,并以某种方式将一个类分配给仅重叠的那些。 (我可以通过他们的 ID 识别事件)但这似乎以某种方式违背了目的,因为日历在呈现事件时已经在进行验证。
【问题讨论】:
-
我想知道是否可以通过 CSS,我发现垂直事件可能是重叠的。我不确定,但是如果您将样式应用于
fc-v-event类,它会起作用吗?如果存在重叠的事件没有得到这个类或者重叠的事件没有得到这个类的情况,那么它就不起作用了。 -
不幸的是,这不起作用,我已经查看了每个事件有哪些类,它们与不重叠的正常事件没有什么不同。它们之间的唯一区别是重叠事件计算并渲染了它们各自的片段。 Fullcalendar 不会向它们添加任何其他内容
-
如果那是唯一的区别,您不能解析计算属性的样式,那么通常您会知道它们重叠并相应地设置样式吗?我认为你正在寻找修改源函数,我同意这会更优雅。我只是在这里抛出快速解决方案的想法。
-
不幸的是我不能这样做,因为我不知道是否有 2 或 3 个元素发生冲突......这意味着每次计算的结果都不同。
-
您想在哪个阶段执行此操作?从远程加载事件还是渲染事件?
标签: javascript jquery angular fullcalendar fullcalendar-scheduler