【发布时间】:2022-01-10 13:50:11
【问题描述】:
我尝试在我的项目中修复以下示例。
所以page-wrapper 的高度应该模拟一个有一些内容的页面,因此height CSS 属性。
我故意将select-container 放在中间,以便在其上方和下方都有空间。
例如,如果我在登陆页面时打开菜单,所以还没有滚动,而不是在顶部打开它,ReactSelect 是在底部打开它并将我向下滚动到它。
如您所见,我尝试了menuPlacement = "auto" prop,因为从我在文档中看到的内容来看,它应该自动进行定位,但似乎不起作用。
我的组件
import ReactSelect from "react-select";
const options = [
{ label: "No 1", value: "test_1" },
{ label: "No 2", value: "test_2" },
{ label: "No 3", value: "test_3" },
{ label: "No 4", value: "test_4" }
];
export default function App() {
return (
<div className="page-wrapper">
<div className="select-container">
<ReactSelect options={options} menuPlacement="auto" />
</div>
</div>
);
}
CSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.page-wrapper {
min-height: 180vh;
width: 100%;
background-color: #f8f8f8;
display: flex;
align-items: center;
}
.select-container {
width: 90%;
margin: 0 auto;
}
如果需要,我有一个沙盒代码 here。
【问题讨论】:
-
在沙箱中尝试您的代码,对我来说似乎工作正常。它打开菜单,缩放视图并显示选项
-
@Filtenborg 但我不希望它滚动视图,我希望它在顶部或底部打开它。比方说,当你在页面的顶部所以根本没有滚动,如果你打开菜单它应该把它放在顶部,因为它下面没有足够的空间。
-
@Filtenborg,问题是,如果您打开菜单,它会显示在输入的底部,而不是顶部。奇怪的是,如果你在滚动页面之前打开菜单,它会显示在顶部,滚动后它会在底部打开,即使你再次向上滚动也是如此。有线!
-
@kristalshards 啊,好吧,我误解了你想要达到的目标,我的错
-
刷新页面后再次尝试,现在即使没有滚动也显示在底部,不知道为什么它在刷新前表现不同。
标签: css reactjs dropdown react-select