ant-design / ant-design-pro

👨🏻‍💻👩🏻‍💻 Use Ant Design like a Pro!
https://pro.ant.design
MIT License
36.12k stars 8.12k forks source link

antdpro使用layout使菜单折叠、展开,可以设置layout展开的时候悬浮与上层吗?不影响主页面宽度 #10804

Closed wangfeiyu2020 closed 6 months ago

wangfeiyu2020 commented 1 year ago

🧐 问题描述 | Problem description

antdpro使用layout使菜单折叠、展开,可以设置layout展开的时候悬浮与上层吗?不影响主页面宽度

💻 示例代码 | Sample code

const Settings: ProLayoutProps & { pwa?: boolean; logo?: string; } = { navTheme: "light", // 拂晓蓝 colorPrimary: "#1890ff", layout: "side", contentWidth: "Fluid", fixedHeader: true, fixSiderbar: true, colorWeak: false, title: "您的公司名称", pwa: true, logo: "/logo.png", iconfontUrl: "", siderWidth:245, breakpoint:false, defaultCollapsed:true, token: { //https://procomponents.ant.design/components/layout#%E9%80%9A%E8%BF%87-token-%E4%BF%AE%E6%94%B9%E6%A0%B7%E5%BC%8F //跨站点应用的图标颜色 colorTextAppListIcon: "#BBDCFE", //跨站点应用的图标 hover 颜色 colorTextAppListIconHover: "#BBDCFE", //跨站点应用的图标 hover 背景颜色 colorBgAppListIconHover:"#BBDCFE", sider: { // colorBgCollapsedButton: '#fff', // colorMenuBackground: '#12344D', // colorBgMenuItemCollapsedElevated: 'rgba(0,0,0,0.85)', // colorMenuItemDivider: 'rgba(255,255,255,0.15)', // colorBgMenuItemHover: 'rgba(0,0,0,0.06)', // colorBgMenuItemSelected: 'rgba(0,0,0,0.15)', // colorTextMenuSelected: '#fff', // colorTextMenuItemHover: 'rgba(255,255,255,0.75)', // colorTextMenu: 'rgba(255,255,255,0.75)', // colorTextMenuSecondary: 'rgba(255,255,255,0.65)', // colorTextMenuTitle: 'rgba(255,255,255,0.95)', // colorTextMenuActive: 'rgba(255,255,255,0.95)', // colorTextSubMenuSelected: '#fff', //menu 的背景颜色 colorMenuBackground: "#12344D", //sider 的标题字体颜色 colorTextMenuTitle:"#12344D", //menuItem 分割线的颜色 colorMenuItemDivider: "#BBDCFE", //menuItem 的字体颜色 colorTextMenu: "#BBDCFE", //menu 的二级字体颜色,比如 footer 和 action 的 icon //colorTextMenuSecondary: "#BBDCFE", //menuItem 的选中字体颜色 //colorTextMenuSelected: "rgba(18,52,77,1)", //menuItem hover 的选中字体颜色 colorTextMenuActive:"rgba(187,220,254,1)", //menuItem 的 hover 字体颜色 colorTextMenuItemHover:"rgba(187,220,254,1)", //menuItem 的 hover 背景颜色 colorBgMenuItemHover:"rgba(187,220,254,1)", //menuItem 的选中背景颜色 colorBgMenuItemSelected: "rgba(232,235,238,1)", //收起 menuItem 的弹出菜单背景颜色 //colorBgMenuItemCollapsedElevated:"rgba(18,52,77,1)", //展开收起按钮背景颜色 colorBgCollapsedButton:"#FFFFFF", //展开收起按钮字体颜色 colorTextCollapsedButton:"#000000", //展开收起按钮 hover 时字体颜色 colorTextCollapsedButtonHover:"#2C5CC5", } } };

export default Settings;

🚑 其他信息 | Other information

图片 图片

OS:

Node:

浏览器 | browser:

chenshuai2144 commented 6 months ago

值得注意是的百分之二十的问题都可以用重装依赖来解决,所以你可以尝试一下: 删除 'node_modules' 文件夹 -> 删除 'package-lock.json'或 'pnpm-lock.yaml' 文件 -> 运行 'pnpm install' 或 'npm install' 命令

antdpro使用layout使菜单折叠、展开,可以设置layout展开的时候悬浮与上层吗?不影响主页面宽度?

可以通过设置layout的属性来实现菜单折叠、展开并且悬浮在上层。在示例代码中的Settings对象中添加如下属性:

fixedHeader: true, // 固定头部
fixSiderbar: true, // 固定侧边栏

设置了fixedHeader和fixSiderbar后,页面的header和sider将会固定在页面的上方和左侧,并且不会影响主页面的宽度。

此外,还可以通过ProLayout组件的属性来设置菜单的折叠和展开状态:

const [collapsed, setCollapsed] = useState(false);

<ProLayout
  layout="side"
  collapsed={collapsed}
  onCollapse={setCollapsed}
>
  {/* 页面内容 */}
</ProLayout>

在示例代码中,可以将defaultCollapsed: true修改为defaultCollapsed: false,并使用useState来控制菜单的折叠和展开状态。

这样修改后,菜单默认是展开状态,点击菜单的折叠按钮可以实现菜单的折叠和展开,并且菜单悬浮在上层不影响主页面的宽度。