如何将 FullCalendar 事件文本旋转 90 度使其垂直
How to rotate FullCalendar event text 90 degrees to be vertical
有时在 FullCalendar 中,尤其是使用 Scheduler 插件时,视图中的不同日期有很多资源和很多列,由于页面上缺少 space,事件的宽度如此之小。在这种情况下,事件文本从上到下垂直放置会更合适,而不是默认的从左到右。这将允许文本利用较大的高度并消除由于宽度减小而被截断的情况。如何将事件文本旋转 90 度?
以下是默认事件压缩在一起时的样子:
这是我希望事件的样子:
使用eventAfterAllRender回调,检查渲染事件的宽度是否太小以及日历是否在特定视图中。如果满足这些条件,则使用 CSS 变换在事件元素内旋转文本。此外,将时间和名称子元素设为内联块,以便它们跨越一行以利用 space.
eventAfterAllRender: function(view) {
if(view['name'] != "month") {
$('.fc-event .fc-content').each(function() {
var e = $(this);
if(e.width() < 40) {
var p = e.parent();
var h = p.height();
var w = p.width();
e.css({
'float': 'left',
'transform': 'rotate(90deg)',
'transform-origin': 'left top 0',
'width': h+'px',
'margin-left': w+'px'
});
e.find('.fc-time').css({
'display': 'inline-block',
'margin-right': '5px'
});
e.find('.fc-title').css('display', 'inline-block');
}
});
}
}
在这种情况下,如果事件元素宽度小于 40 像素并且日历不在月视图中,我只想将标签旋转 90 度。
有时在 FullCalendar 中,尤其是使用 Scheduler 插件时,视图中的不同日期有很多资源和很多列,由于页面上缺少 space,事件的宽度如此之小。在这种情况下,事件文本从上到下垂直放置会更合适,而不是默认的从左到右。这将允许文本利用较大的高度并消除由于宽度减小而被截断的情况。如何将事件文本旋转 90 度?
以下是默认事件压缩在一起时的样子:
这是我希望事件的样子:
使用eventAfterAllRender回调,检查渲染事件的宽度是否太小以及日历是否在特定视图中。如果满足这些条件,则使用 CSS 变换在事件元素内旋转文本。此外,将时间和名称子元素设为内联块,以便它们跨越一行以利用 space.
eventAfterAllRender: function(view) {
if(view['name'] != "month") {
$('.fc-event .fc-content').each(function() {
var e = $(this);
if(e.width() < 40) {
var p = e.parent();
var h = p.height();
var w = p.width();
e.css({
'float': 'left',
'transform': 'rotate(90deg)',
'transform-origin': 'left top 0',
'width': h+'px',
'margin-left': w+'px'
});
e.find('.fc-time').css({
'display': 'inline-block',
'margin-right': '5px'
});
e.find('.fc-title').css('display', 'inline-block');
}
});
}
}
在这种情况下,如果事件元素宽度小于 40 像素并且日历不在月视图中,我只想将标签旋转 90 度。