我正在开发一个Web应用程序,我已经集成了Fullcalendar。我把它放在Bootstrap模态中,如下所示:
<div class="modal" tabindex="-1" role="dialog" id="calendar-modal">
<div class="modal-dialog modal-fullscreen">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title">Booking Calendar</h3>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<div id="calendar"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary">Create</button>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
脚本:
<script>
document.addEventListener('DOMContentLoaded', function(){
var calendarUI = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarUI,{
});
calendar.render();
});</script>
当我打开它时,我有以下视图:
而且当我调整窗口大小时,它神奇地修复了(任何调整大小的操作都有效,甚至打开开发人员工具)
有没有什么想法,什么可能是错误的?也许这个日历不是设计用于模态?
1条答案
按热度按时间bq9c1y661#
据我理解,这个问题是这样的:当fullCalendar呈现时,它根据包含它的元素判断它的大小。因此,如果日历所在的模态是以隐藏的方式开始的,那么它的大小实际上为零。因此,您需要确保在模态显示之前不呈现日历,这样它就可以根据模型可见时的尺寸来计算大小。如果模态被隐藏然后再次显示,则呈现日历。
幸运的是,bootstrap提供了“showed”事件,您可以从中处理和调用
calendar.render()
函数,以便在每次模态变为可见时呈现日历:工作演示:https://codepen.io/ADyson82/pen/PoaqPWd