React-antd关于弹出框不固定的解决方法

929 阅读1分钟

React-antd 关于select选择框,date(range)Picker时间选择器,dropDown下拉菜单,Popconfirm气泡确认框等组件弹出框随页面滚动条滚动而滚动的解决方法

1.Select选择器、date(range)Picker日期选择框

<Select
    placeholder="请选择"
    allowClear
    getPopupContainer={(triggerNode: { parentNode: any; }) => triggerNode.parentNode}
    showSearch>
    {data.map((item: any) => {
            return (
                <Option
                    key={item.value}
                    value={item.value}
                >
                    {item.label}
                </Option>
            );
        })}
</Select>

直接添加 getPopupContainer={(triggerNode: { parentNode: any; }) => triggerNode.parentNode}即可

2.dropDown下拉菜单

直接添加getPopupContainer可能不会生效,需要相对父容器定位

<div
    style={{ justifyContent: "space-between", position:'relative' }}
  >
    <Dropdown
      overlay={menu}
      trigger={["click"]}
      getPopupContainer={(triggerNode: any) => triggerNode.parentNode}
    >
      <Button type="primary">
        下拉菜单
        <DownOutlined />
      </Button>
    </Dropdown>
  </div>

3.Popconfirm气泡确认框

直接添加getPopupContainer会导致确认框样式改变,所以需要调整css,我的项目里弹出框的宽度缩短了,修改如下

.popConfirm {
    .ant-popconfirm {
        width: max-content
    }
}

其他样式调整根据项目css调整就好了 还有其他方法可写在评论区,为了老板换车换房,尽自己的绵薄之力!!!