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

React项目中Radix UI Dropdown Menu打开时页面滚动锁定问题

解决Radix UI Dropdown Menu打开时锁定页面滚动的问题

Radix UI的Dropdown Menu组件默认启用了preventScroll属性,这会在菜单打开时锁定页面滚动。要让背景内容保持可滚动,只需要在根组件DropdownMenu.Root上显式设置preventScroll={false}即可。

示例代码

import * as DropdownMenu from '@radix-ui/react-dropdown-menu';

function CustomDropdown() {
  return (
    <DropdownMenu.Root preventScroll={false}>
      <DropdownMenu.Trigger className="dropdown-trigger">
        点击打开菜单
      </DropdownMenu.Trigger>
      <DropdownMenu.Content className="dropdown-content">
        <DropdownMenu.Item>菜单选项1</DropdownMenu.Item>
        <DropdownMenu.Item>菜单选项2</DropdownMenu.Item>
        <DropdownMenu.Item>菜单选项3</DropdownMenu.Item>
      </DropdownMenu.Content>
    </DropdownMenu.Root>
  );
}

额外优化(可选)

如果菜单选项较多、内容过长,建议给DropdownMenu.Content设置最大高度和内部滚动,避免菜单超出视口:

<DropdownMenu.Content 
  style={{ 
    maxHeight: '350px', 
    overflowY: 'auto',
    padding: '8px 0'
  }}
>
  {/* 这里放置所有菜单选项 */}
</DropdownMenu.Content>

内容的提问来源于stack exchange,提问作者Faizan Rasheed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 12:22:31