在可滚动的网格列父级中显示静态 Flatpicker 的溢出
Showing overflow of a static Flatpicker in a scrollable grid column parent
我在正文中使用了网格显示,第一列有一些控制元素,第二列有全页视图。第一列可能包含很多元素,需要垂直滚动(overflow-x:auto)。
我在网格列的其他元素中有一个输入元素,我向其分配了 flatpicker。
https://codepen.io/dbauszus-glx/pen/wvpamZr
flatpickr("#date-input", {
static: true,
//appendTo: "scroll-parent"
});
我的问题是没有静态 属性 flatpickr 控件显示但不滚动。
使用静态 属性 时,flatpickr 控件会与输入元素一起滚动,但显示会溢出父容器。
我希望控件在没有静态的情况下显示,但在滚动时链接到输入元素。
我尝试使用 appendTo 属性,但似乎没有任何效果。
搜索 flatpickr 问题我发现 issue 与 flatpickr 实例在 scrollparent 中的定位有关。
我将一个小的 util 方法放在一起,该方法采用 flatpickr 实例和一个 scrollParent 元素,并在 flatpickr 实例打开时将滚动事件侦听器附加到父元素。
滚动事件方法将重新定位绝对 flatpickr 容器。
onClose 事件将从 scrollParent 元素中删除滚动事件监听器。
function appendFlatpickrToScroll(fp, scrollParent) {
fp.config.onOpen.push(() => {
scrollParent.addEventListener("scroll", scrollEvent, { passive: true });
});
fp.config.onClose.push(() => {
scrollParent.removeEventListener("scroll", scrollEvent);
});
function scrollEvent() {
fp._positionCalendar();
}
}
我在正文中使用了网格显示,第一列有一些控制元素,第二列有全页视图。第一列可能包含很多元素,需要垂直滚动(overflow-x:auto)。
我在网格列的其他元素中有一个输入元素,我向其分配了 flatpicker。
https://codepen.io/dbauszus-glx/pen/wvpamZr
flatpickr("#date-input", {
static: true,
//appendTo: "scroll-parent"
});
我的问题是没有静态 属性 flatpickr 控件显示但不滚动。
使用静态 属性 时,flatpickr 控件会与输入元素一起滚动,但显示会溢出父容器。
我希望控件在没有静态的情况下显示,但在滚动时链接到输入元素。
我尝试使用 appendTo 属性,但似乎没有任何效果。
搜索 flatpickr 问题我发现 issue 与 flatpickr 实例在 scrollparent 中的定位有关。
我将一个小的 util 方法放在一起,该方法采用 flatpickr 实例和一个 scrollParent 元素,并在 flatpickr 实例打开时将滚动事件侦听器附加到父元素。
滚动事件方法将重新定位绝对 flatpickr 容器。
onClose 事件将从 scrollParent 元素中删除滚动事件监听器。
function appendFlatpickrToScroll(fp, scrollParent) {
fp.config.onOpen.push(() => {
scrollParent.addEventListener("scroll", scrollEvent, { passive: true });
});
fp.config.onClose.push(() => {
scrollParent.removeEventListener("scroll", scrollEvent);
});
function scrollEvent() {
fp._positionCalendar();
}
}