当dayClick函数没有在页面上触发某些单元格的滚动时,我遇到了问题,而对其他单元格来说这很好。基本上,在没有滚动的页面上是可以的,但在有页面的较长内容上会引起问题。
我发现有两个函数可以定义网格中的单元格位置(fullcalendar 2.5.0版本):
"getHorizontalIndex"one_answers"getVerticalIndex"
函数"getVerticalIndex"返回"undefined",因为鼠标"topOffset"位置超出了"boundingRect"维度,所以在深入挖掘后,我找到了负责查找顶部父元素的函数"getScrollParent"(第297行)。
function getScrollParent(el) {
var position = el.css('position');
var scrollParent = el.parents().filter(function() {
var parent = $(this);
return (/(auto|scroll)/).test(
parent.css('overflow') + parent.css('overflow-y') + parent.css('overflow-x')
);
}).eq(0);
return position === 'fixed' || !scrollParent.length ? $(el[0].ownerDocument || document) : scrollParent;
}
因为在我的css中没有css为'overflow:scroll'或'overflow:auto'的元素,所以我的父元素是'html',它的高度被检测为没有滚动的高度。解决方案很简单-指定"overflow:auto;"在css中用于日历元素。例如,如果您有以下代码:
<div id="mycalendar"></div>
(function(){
$("#mycalendar").fullCalendar({});
})();
添加样式'overflow:auto;'对于"mycalendar"分区。
当前的修复方法是从HTML元素中删除overflow-x: hidden
。这是一个已知的问题:https://github.com/fullcalendar/fullcalendar/issues/3615