【发布时间】:2020-08-10 08:46:38
【问题描述】:
一段时间以来,我一直在尝试找出一种方法来将材质 ui 弹出框放置在我的锚点下方,并且即使在较小的屏幕上也始终保持这种状态。
这是一个沙盒示例:https://codesandbox.io/s/material-demo-yvcqu?file=/demo.js
这是我得到的最好的,但此时滚动并没有真正在身体上,而是在弹出容器div上,这对我没有帮助。
只是为了解释一下,我知道我可以将AnchorElement 与位置一起使用,但在较小的屏幕上,弹出框只会隐藏Anchor,我希望弹出框始终位于其下方,并让正文滚动,所以当我向下滚动时,我可以看到完整的弹出框内容。
import React from "react";
import {makeStyles,MuiThemeProvider,createMuiTheme} from "@material-ui/core/styles";
import Popover from "@material-ui/core/Popover";
import Button from "@material-ui/core/Button";
export default function SimplePopover() {
const [anchorEl, setAnchorEl] = React.useState(null);
const handleClick = (event) => {
setAnchorEl(event.currentTarget);
};
const handleClose = () => {
setAnchorEl(null);
};
const theme2 = createMuiTheme({
overrides: {
MuiButton: {
root: {
top: 400
}
},
MuiPopover: {
root: {
},
paper: {
height: 500
}
}
}
});
return (
<div>
<MuiThemeProvider theme={theme2}>
<Button
variant="contained"
color="primary"
onClick={handleClick}
>
Open Popover with anchor
</Button>
<Popover
id="popover-with-anchor"
open={Boolean(anchorEl)}
anchorEl={anchorEl}
onClose={handleClose}
anchorOrigin={{
vertical: 'bottom',
horizontal: 'center',
}}
transformOrigin={{
vertical: 'top',
horizontal: 'center',
}}
>
Popover content.
</Popover>
</MuiThemeProvider>
</div>
);
}
例如图像。当弹出框比屏幕大时,它会自动进入屏幕并越过锚点
而不是在锚下
【问题讨论】:
-
目前还不清楚您要做什么以及到底是什么问题。请创建一个工作示例(您可以为此使用codesandbox.io)。
-
我同意上述观点,您也可以使用提供的代码编辑器作为您问题的选项。
-
我编辑了@Dekel。添加了图像来解释我试图实现的目标,并添加了显示问题的代码
-
@NathanielFlick
标签: css reactjs material-ui