Fullcalendar:minTime错误地计算了fc-not-start

时间:2019-07-11 10:39:50

标签: javascript css fullcalendar fullcalendar-scheduler fullcalendar-3

我正在使用Fullcalendar库调度程序模块。

我使用minTime属性并将其设置为视图定义内的“ 06:00:00”(这样,“日期不是从午夜开始”)。

但是,如果那样的话,即使在6h之前开始的日历元素都位于类fc-not-start中……

如何处理?

编辑:

一些其他信息:

全日历版本:v3.9.0

fc-not-start:此类应包含未在此视图中启动的日历(预定)元素。 (开始是不可见的)。这是必需的,因为如果元素具有一些圆角,边框,...如果开始不可见,则元素不应在左侧。 (或者,如果您要显示图标,则表示您未查看完整元素)

示例: 在红色方块内,这是fc-not-start

的正确用法

enter image description here

这是fc-not-start

的错误使用

enter image description here

fc-not-start应该在fullcalendar库中计算自己,并且可以正常工作,直到在视图中添加参数minTime为止。

编辑2:

我创建最少的代码来查看问题

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Demo</title>
    <link rel='stylesheet' href='css/fullcalendar.css' />
    <link rel='stylesheet' href='css/scheduler.css' />
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
    <link rel='stylesheet' href='css/style.css' />
    <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>

    <div id='calendar'></div>



    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
    <script src='js/moment.js'></script>
    <script src='js/fullcalendar.js'></script>
    <script src='js/scheduler.js'></script>
    <script src='js/my_script.js'></script>

    <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>




</body>
</html>

JS

var resources = [
    {
        id: 'A',
        title: 'A',
        sortOrder: 1
    },
    {
        id: 'B',
        title: 'B',
        sortOrder:2
    },
    {
        id: 'C',
        title: 'C',
        sortOrder:3
    }
];


$('#calendar').fullCalendar({


    // height: 550,
    // eventColor: '#428bca',

    schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',
    defaultView: 'timelineFourDays',

    views: {
        timelineFourDays: {
            type: 'timeline',
            minTime: '07:00:00',
            duration: { days: 4 }
        },
    },

    resources: resourcesFunc,



    nowIndicator: true,




    events: [
        {
            id: '1',
            resourceId: 'A',
            title: 'Meeting',
            start: '2019-07-13T00:20:00',
            end: '2019-07-14T02:20:00',
        },

        {
            id: '2',
            resourceId: 'A',
            title: 'Meeting2',
            start: '2019-07-13T00:20:00',
            end: '2019-07-14T02:20:00',
        }


    ],
    displayEventTime: true,


});


function resourcesFunc(callback) {
    callback(resources);
}

enter image description here

仅当元素在屏幕上不完全可见时,<才应。在这种情况下,此类的计算错误...

https://jsfiddle.net/Ly9rsoc1/2/

1 个答案:

答案 0 :(得分:0)

您说

  

“ <仅当元素在屏幕上不完全可见时,<”

但是:您的事件在指定的minTime值之前开始。这意味着事件的起点永远不会在您的日历上显示。因此,将显示<图标。

我认为您误解了此功能的性质。这与 HTML元素的开始是否可见无关,而与事件(由该HTML元素表示)的开始是否可见有关。并且由于您从显示器中删除了该事件所涵盖的某些时间,因此它会显示图标,以便用户清楚这一事实。

结论:日历的行为与预期的完全一样。这里没有错误。


顺便说一句,我要指出的是,如果您的活动例行性地覆盖了一天中的这些时间,那么我认为使这些时间不可见不是很合逻辑或非常用户友好,因为它隐藏了可能有用的东西信息。但是,如果这些特殊事件是异常的,并且您的大多数事件是在早上7点以后,那么您可能只需要容忍这些异常情况即可。