JGuang

弹出层

Popup · Ant Design Mobile

交互预览
npm install antd-mobile@5.43.0

弹出层 Popup

从屏幕滑出或弹出一块自定义内容区。

安装

npm install antd-mobile@5.43.0

antd-mobile 是移动网页组件库,不是 React Native 或小程序组件。React 19 项目需在入口用 unstableSetRender 注册 createRoot,否则 Toast、Dialog 等命令式 API 无法渲染;深色模式通过 <html data-prefers-color-scheme="dark"> 切换。

示例来自 Ant Design Mobile 官方仓库(MIT),固定在 npm 5.43.0 对应的提交;示例中的 DemoBlock 等展示辅助组件由 JGuang 重写,不属于 antd-mobile 的 API。

从屏幕滑出或弹出一块自定义内容区。

何时使用

适用于展示弹窗、信息提示、选择输入、切换等内容,支持多个弹出层叠加展示。

示例

属性

属性说明类型默认值
afterClose完全关闭后触发() => void-
afterShow完全展示后触发() => void-
bodyClassName内容区域类名string-
bodyStyle内容区域样式React.CSSProperties-
className容器类名string-
closeOnMaskClick点击背景蒙层后是否关闭booleanfalse
closeIcon自定义关闭按钮图标ReactNode<CloseOutline/>
destroyOnClose不可见时是否销毁 DOM 结构booleanfalse
disableBodyScroll背景蒙层是否禁用 body 滚动booleantrue
forceRender强制渲染内容booleanfalse
getContainer指定挂载的 HTML 节点,默认为 body,如果为 null 的话,会渲染到当前节点HTMLElement | () => HTMLElement | null() => document.body
mask是否展示蒙层booleantrue
maskClassName遮罩类名string-
maskStyle遮罩样式React.CSSProperties-
onClick点击时触发,常用于阻止事件冒泡(event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void-
onClose关闭时触发() => void-
onMaskClick点击蒙层触发(event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void-
position指定弹出的位置'bottom' | 'top' | 'left' | 'right''bottom'
showCloseButton是否显示关闭按钮booleanfalse
stopPropagation阻止某些事件的冒泡PropagationEvent[]['click']
style容器样式React.CSSProperties-
visible是否可见booleanfalse
closeOnSwipe是否支持向上/下滑动关闭booleanfalse

CSS 变量

属性说明默认值全局变量
--z-index元素的 z-index1000--adm-popup-z-index

CenterPopup

和 Popup 不同,CenterPopup 是从中间弹出的,Dialog 和 Modal 都是基于它实现的。

示例

属性

CenterPopup 不支持 position 属性,并且 getContainer 的默认值是 null,其他属性同 Popup。

CSS 变量

属性说明默认值全局变量
--background-color弹层的背景色#ffffff--adm-center-popup-background-color
--border-radius弹层的边框圆角8px--adm-center-popup-border-radius
--max-width弹层的最大宽度75vw--adm-center-popup-max-width
--min-width弹层的最小宽度280px--adm-center-popup-min-width
--z-index元素的 z-index1000--adm-center-popup-z-index