更改特定日期的完整日历日CSS

时间:2015-11-11 23:33:02

标签: javascript jquery fullcalendar

我在这里Fiddle使用fullcalendar,我想在上个月的任何一天以及当月禁用/隐形/灰色/等之后的任何一天。我知道我可以在javascript中处理事件创建,但是有没有办法使用CSS来改变本月之前和本月之后的日子的外观?这可能吗?在文档中我看到了Limeline视图“自定义时间轴视图的持续时间”,但不确定这是否可以用来完成此任务?它还说我需要高级版才能拥有这个功能吗?

$(document).ready(function() {
  var date = new Date();
  var d = date.getDate();
  var m = date.getMonth();
  var y = date.getFullYear();

  var calendar = $('#calendar').fullCalendar({

    header: {
      left: 'prev,next today',
      center: 'title',
      right: 'month,agendaWeek,agendaDay'
    },

    eventRender: function(event, element, view) {
      var nextEventLeft = element.offset().left + element.width() + 5;
      element.parent().children().eq(element.index() + 1).css('left', nextEventLeft);
    },
    selectable: true,
    selectHelper: true,

    year: y,
    month: m,
    date: d,

    slotMinutes: 15,
    editable: true,

    events: [{
      title: 'Sales Meeting',
      start: new Date(y, m, d, 10, 30),
      end: new Date(y, m, d, 11, 30),
      allDay: false,
      className: 'fc-event-height-overirde'
    }]

  });

  console.log($('#calendar').html());

});
<div style="border:solid 1px red;">
  <div id='calendar'></div>
</div>

1 个答案:

答案 0 :(得分:1)

好的,我玩了一下,试试这个。

$(document).ready(function() {
    var date = new Date();
    var d = date.getDate();
    var m = date.getMonth();
    var y = date.getFullYear();

    var calendar = $('#calendar').fullCalendar({

        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },

        eventRender: function (event, element, view) {
            var nextEventLeft = element.offset().left + element.width() + 5;
           element.parent().children().eq(element.index()+1).css('left',nextEventLeft);
        },
        selectable: true,
        selectHelper: true,

        year:  y,
        month: m,
        date:  d,

        slotMinutes: 15,
        editable: true,

        events: [
            {
                title: 'Sales Meeting',
                start: new Date(y, m, d, 10, 30),
                end: new Date(y, m, d, 11, 30),
                allDay: false,
                className: 'fc-event-height-overirde'
            }
        ]

    });

    console.log($('#calendar').html());

    function IsCurrentMonth() {
        if ($('.fc-button-today').hasClass('fc-state-disabled'))
            $('.fc-header-left span[class^="fc-button"]').closest('#calendar').addClass('current-month');
        else
            $('.fc-header-left span[class^="fc-button"]').closest('#calendar').removeClass('current-month');
    }
    IsCurrentMonth();

    $('.fc-header-left span[class^="fc-button"]').click(function() {
        IsCurrentMonth();
    });
});

还要添加此样式代码:

#calendar:not(.current-month) .fc-content .fc-day-number {
    color: #808080;
    opacity: 0.3;
}