javascript - 更改特定日期的全日历 CSS

标签 javascript jquery fullcalendar

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

$(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>

最佳答案

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

$(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;
}

关于javascript - 更改特定日期的全日历 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33661850/

相关文章:

javascript - 触发一个适用于所有浏览器的新选项卡

javascript - 全日历跳月而不是周

javascript - 如何在node.js中处理post数据后设置cookie头

javascript - 使用 Bootstrap 将 JSON 文件加载到表中

javascript - 从 AngularJS 中的子指令获取对 Controller 的访问权限

javascript - HighCharts - HightStock 带有滚动导航器的倒轴

javascript - 以编程方式触发输入的更改事件

jquery - jsp中抛出的数据类型异常

javascript - 尝试在heroku中推送rails应用程序并收到js错误

jquery fullcalendar - 删除一天的所有事件