我在工作中遇到了一个问题,需要完成一个项目。我需要更改某些日期的背景颜色。这是一个用户可以查看哪些日期可用和不可用的日历。我发现有一个叫做"data-date"的属性,但我没有找到使用它的方法。
有没有办法操纵特定日期的背景?
我认为一定有办法,因为显示当前日期的单元格也有另一种颜色。
我在工作中遇到了一个问题,需要完成一个项目。我需要更改某些日期的背景颜色。这是一个用户可以查看哪些日期可用和不可用的日历。我发现有一个叫做"data-date"的属性,但我没有找到使用它的方法。
有没有办法操纵特定日期的背景?
我认为一定有办法,因为显示当前日期的单元格也有另一种颜色。
对于 month
、basicWeek
和 basicDay
视图,您可以通过提供一个 dayRender
函数来改变日期的呈现方式。例如:
$("#calendar").fullCalendar({
dayRender: function (date, cell) {
cell.css("background-color", "red");
}
});
dayRender
的文档在这里: http://arshaw.com/fullcalendar/docs/display/dayRender/
这里有一个在 jsfiddle 上的工作示例:http://jsfiddle.net/kvakulo/CYnJY/4/
对于那些只想改变过去日期颜色的人,可以在你的css中针对.fc-past
进行操作,并添加background-color
属性。例如:
.fc-past {
background-color: silver;
}
dayRender: function(date, cell){
if (moment().diff(date,'days') > 0){
cell.css("background-color","silver");
}
},
var $calendar = $('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
defaultView: 'month',
dayRender: function (date, cell) {
var check = $.fullCalendar.formatDate(date,'yyyy-MM-dd');
var today = $.fullCalendar.formatDate(new Date(),'yyyy-MM-dd');
if (check < today) {
cell.css("background-color", "red");
}
}
});
Regin Larsen帮助我实现了这个代码。感谢Regin Larsen。
$("#calendar").fullCalendar(function() {
viewRender: function() {
$("[data-date="+$.fullCalendar.formatDate(new Date(), "yyyy-MM-dd")+"]").css("background-color", "red");
},
....
dayRender
方法在使用 dayThreeView
时不能正常工作。 - Oleg Abrazhaev要比较特定日期使用日期参数:
$("#calendar").fullCalendar({
dayRender: function (date, cell) {
if (date.isSame('2016-08-04')) {
cell.css("background-color","red");
}
}
});
isSame来自moment.js,它被fullcalendar使用: http://momentjs.com/docs/#/query/is-same/
getDate 不起作用,我猜应该使用 moment。
在 var calendar = $('#calendar').fullCalendar({ ... }
内部
dayRender: function (date, cell) {
var today = moment('2018-06-22T00:00Z');
if (date.isSame(today, "day")) {
cell.css("background-color", "blue");
}
},