You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Material UI Select实现下拉菜单向上展开

解决Material UI Select下拉菜单向上展开的问题

要让Material UI的Select组件下拉菜单向上展开,只需通过MenuProps配置菜单的锚点与变换原点即可,具体实现如下:

  • 在Select组件中添加MenuProps属性,配置anchorOrigin和transformOrigin两个参数:
    • anchorOrigin:设置菜单相对于Select组件的锚定位置,将vertical设为top,表示菜单锚定在Select的顶部
    • transformOrigin:设置菜单自身的变换原点,将vertical设为bottom,表示菜单从自身底部开始向上展开

修改后的完整代码:

import * as React from "react";
import Box from "@mui/material/Box";
import InputLabel from "@mui/material/InputLabel";
import MenuItem from "@mui/material/MenuItem";
import FormControl from "@mui/material/FormControl";
import Select, { SelectChangeEvent } from "@mui/material/Select";

export default function BasicSelect() {
  const [age, setAge] = React.useState("");

  const handleChange = (event: SelectChangeEvent) => {
    setAge(event.target.value as string);
  };

  return (
    <Box
      sx={{
        position: "relative",
        top: "200px",
        minWidth: 10
      }}
    >
      <FormControl fullWidth>
        <InputLabel id="demo-simple-select-label">Age</InputLabel>
        <Select
          labelId="demo-simple-select-label"
          id="demo-simple-select"
          value={age}
          label="Age"
          onChange={handleChange}
          // 添加MenuProps配置向上展开
          MenuProps={{
            anchorOrigin: {
              vertical: 'top',
              horizontal: 'left',
            },
            transformOrigin: {
              vertical: 'bottom',
              horizontal: 'left',
            },
          }}
        >
          <MenuItem value={10}>Ten</MenuItem>
          <MenuItem value={20}>Twenty</MenuItem>
          <MenuItem value={30}>Thirty</MenuItem>
        </Select>
      </FormControl>
    </Box>
  );
}

这个配置会强制下拉菜单从Select组件的顶部向上展开,替代默认的向下展开行为。

内容的提问来源于stack exchange,提问作者Виктория

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:00:24