【问题标题】:FullCalendar 2.3.0 Change day colour on hoverFullCalendar 2.3.0 悬停时更改日期颜色
【发布时间】:2015-03-11 21:56:24
【问题描述】:

我正在尝试更改鼠标悬停时的日期背景颜色。

为此,需要在.fc-bg .fc-day.fc-content-skeleton .fc-day-number 上捕获悬停事件。在我使用 background render events 作为 allDay 事件之前,这可以正常工作,因为那时有第三层,其类为 .fc-bg-event-skeleton,它位于其他两层之上。底层元素的事件不再被触发,因为单元格是使用 colspan 渲染的,如果连续有背景渲染事件,我不能只突出显示一天。

是否有可能在全日历中突出显示鼠标悬停的天数?我正在使用月视图。

<div class="fc-bg">...</div>
<div class="fc-content-skeleton">...</div>
<div class="fc-bgevent-skeleton">
    <table><tbody>
        <tr>
             <td class="fc-week-number" style="width:21px"></td>
             <td colspan="3"></td>
             <td colspan="1" class="fc-bgevent available"></td>
             <td colspan="3"></td>
        </tr>
   </tbody></table>
</div>

【问题讨论】:

    标签: javascript jquery fullcalendar


    【解决方案1】:

    最好的办法是使用pointer-events:none 允许悬停通过某些容器元素,并使用pointer-events:auto 在仍需要指针事件的子元素上重新启用它。

    .fc-day:hover{
        background:lightblue;
    }
    
    /*Allow pointer-events through*/
    .fc-slats, /*horizontals*/
    .fc-content-skeleton, /*day numbers*/
    .fc-bgevent-skeleton /*events container*/{
        pointer-events:none
    }
    
    /*Turn pointer events back on*/
    .fc-bgevent,
    .fc-event-container{
        pointer-events:auto; /*events*/
    }
    

    JSFiddle

    除非这会给您带来特定的无法解决的问题,否则这是最好的方法。您可能会弄乱 z-index、透明覆盖或大量 JS,但到目前为止,这种解决方案引起的麻烦最少。

    【讨论】:

    • 对不起,我刚刚添加了我正在使用 allDay 事件作为背景事件的信息(在月视图中)。在这种情况下,您的示例不起作用。此外,当将鼠标悬停在月份数字标题和事件上时,不能只为了突出显示一天而禁止所有指针事件。
    • @chmielot 已更新。您是否有不喜欢禁止指针事件的特定原因?您可以根据需要重新打开它们。
    • 我也在使用“正常”事件。这些正常事件应在鼠标悬停时打开一个工具提示,您应该能够单击它们以执行其他操作。禁用指针事件后,这不再起作用。我知道禁用指针事件显然可以让背景中的 div 为 :hover 在带有背景渲染事件的表格行中“闪耀”。
    • @chmielot 当您将鼠标悬停在某个事件上时,它是否仍会突出显示当天?还是只显示工具提示?
    • @chmielot 小提琴现在有适用于常规活动的工具提示。为后台事件添加它们很简单。
    猜你喜欢
    • 2013-07-10
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多