首页 > 解决方案 > 如何在“fullcalendar”标题部分添加图像?

问题描述

我想在全日历标题部分中显示一些文本以及旁边的图像。

我有一个完整的日历,根据日期在下面的列中显示名称作为标题和相关数据。我想在它旁边显示名称以及图片。我尝试为测试目的附加 html 元素,但没有得到预期的结果。

这是为标题分配值的部分

$.map(SomeJSON, function (resourceitem, i) {
    var resource = new Object();
    resource.id = resourceitem.UserID.toString();
    resource.title = resourceitem.UserName;
    if (resourceitem.UserID == scheduleitem.AssignedStaff) {
        $('div[id*=calendarAgendaSchedule]').fullCalendar('addResource', 
        resource, scroll);
        }                       
    });

这是在标题附加额外的 html 元素之前的输出。

我尝试将 html 标记附加到标题。

$.map(SomeJSON, function (resourceitem, i) {
    var resource = new Object();
    resource.id = resourceitem.UserID.toString();
    resource.title = resourceitem.UserName+'<div class="text-accent">test</div> ';
    if (resourceitem.UserID == scheduleitem.AssignedStaff) {
        $('div[id*=calendarAgendaSchedule]').fullCalendar('addResource', 
        resource, scroll);
        }                       
    });

这是将额外的 html 元素附加到标题后的输出。

预期结果

标签: fullcalendar

解决方案


你需要resourceRender。试试下面的代码。它是在每个资源的左侧显示图像的工作代码,但您可以使用一些 css 来实现您的期望。

  resourceRender: function(res){
    let imageStyles= "background:url('../assets/media/users/100_4.jpg') left center no-repeat;\
        border-radius:50%;\
        width: 30px;\
        height: 30px;\
        background-size: 35px;\
        margin-right:10px;\
        display: inline-block;"
    let elStyles = "display: flex;\
        justify-content: center;\
        align-items: center;"
    res.el.innerHTML = '<div style="'+elStyles+'">\
                      <div style="'+imageStyles+'">\
                      </div><div>'+res.resource.title+'</div>\
                    </div>';

  }

推荐阅读