防止日期选择器随页面滚动

Posted

技术标签:

【中文标题】防止日期选择器随页面滚动【英文标题】:Prevent date picker from scrolling with page 【发布时间】:2022-01-23 21:12:01 【问题描述】:

我正在制作一个包含 antd 的日期选择器的 React 应用程序

简单的index.js代码:

import React from "react";
import ReactDOM from "react-dom";
import  DatePicker  from "antd";
import "antd/dist/antd.css";
import "./index.css";

ReactDOM.render(
  <div className="App">
    <h1>Select date-picker scroll bug.</h1>
    <div
      style= marginTop: "16px", width: 500, overflow: "scroll", height: 400 
    >
      <DatePicker />
      <div style= minHeight: 500 ></div>
    </div>
  </div>,
  document.getElementById("root")
);

工作示例:

重现:如果用户点击输入,日期选择器会显示,但当我们尝试向下滚动时,日期选择器也会随着页面滚动。

预期结果:日期选择器不应滚动,它需要位于输入框下方。

任何帮助都会非常感激。提前致谢。

【问题讨论】:

【参考方案1】:

这在他们的常见问题解答中有所描述:https://ant.design/docs/react/faq#How-do-I-prevent-Select-Dropdown-DatePicker-TimePicker-Popover-Popconfirm-scrolling-with-the-page?

    position: "relative" 添加到父元素。 将getPopupContainer=trigger =&gt; trigger.parentElement 添加到您的DatePicker

【讨论】:

这是因为弹出窗口在父组件的 DOM 元素之外呈现为模式。此修复将弹出容器设置为触发器的父级。

以上是关于防止日期选择器随页面滚动的主要内容,如果未能解决你的问题,请参考以下文章

引导日期选择器上的棘手问题

有啥办法可以防止 FormBuilder 元素滚动到页面顶部?

日期选择器滚动到过去的日期,即使最小日期设置为当前日期

jQuery Datepicker:单击日期时防止关闭选择器

日期选择器部分被溢出-y滚动隐藏

使用移动设备滚动日期选择器:appium 中的 selectPickerWheelValue