Modal

维护者:
amje
GitHub
disableBodyScrollLock
import {Modal} from '@gravity-ui/uikit';

Modal 组件是创建弹出窗口的基础,其背景位于页面上其余内容的上方。 它在打开时禁用滚动并管理内容的焦点。Modal 子组件在组件内部呈 Portal 现。 使用 Modal ,您可以实现对话、警报、确认等。

用法

import {useState} from 'react';
import {Button, Modal} from '@gravity-ui/uikit';

const [open, setOpen] = useState(false);

<Button onClick={() => setOpen(true)}>Open Modal</Button>
<Modal open={open} onClose={() => setOpen(false)}>
    Content
</Modal>

属性

姓名描述类型默认
autoFocus打开时,焦点将设置为内容中的第一个交互式元素booleantrue
儿童任何 React 内容React.ReactNode
classNameclass 根节点的 HTML 属性string
容器子元素挂载到的 DOM 元素HTMLElementdocument.body
contentClassNameclass 内容节点的 HTML 属性string
disableBodyScrollLock打开时禁用锁定滚动booleanfalse
disableEscapeKeyDown禁用触发关闭 Escbooleanfalse
disableOutsideClick禁用外部点击时触发关闭booleanfalse
focusTrap启用对焦陷阱行为booleantrue
keepMountedModal 隐藏后不会从 DOM 中移除booleanfalse
onClose处理 Modal 关闭事件Function
onEnterKeyDownEnter 按下事件处理器Function
onEscapeKeyDownEsc 按下事件处理器Function
onTransitionEnter打开过渡开始事件处理器Function
onTransitionExit关闭过渡开始事件处理器Function
onTransitionEntered打开过渡结束事件处理器Function
onTransitionExited关闭过渡结束事件处理器Function
onOutsideClick外部点击事件处理器Function
打开管理 Modal 可见性booleanfalse
qa测试属性 (data-qa)string
restoreFocusRef焦点将恢复到的元素React.RefObject
风格style 根节点的 HTML 属性string
aria-labelaria-label 要描述的 HTML 属性 Modalstring
aria-labelledby可见标 Modal 题元素的 IDstring
contentOverflow确定里面是 Modal 有滚动指示器还是随内容变大visible autovisible

CSS API

姓名描述
--g-modal-marginModal 内容周围的边距
--g-modal-border-radiusModal 内容边框半径