跳到主要内容跳到主要内容

SwipeableDrawerAPI

React SwipeableDrawer 组件的 API 参考文档。了解此导出模块的 props、CSS 和其他 API。

演示

导入

import SwipeableDrawer from '@mui/material/SwipeableDrawer';
// or
import { SwipeableDrawer } from '@mui/material';

通过阅读关于最小化 bundle size 的指南,了解它们之间的区别。

Props

Drawer 组件的 Props 也可用。

名称类型默认值描述
onClose*func-

当组件请求关闭时触发的回调。

签名:function(event: React.SyntheticEvent<{}>) => void
  • event 回调的事件源。
onOpen*func-

当组件请求打开时触发的回调。

签名:function(event: React.SyntheticEvent<{}>) => void
  • event 回调的事件源。
allowSwipeInChildrenfunc
| bool
false

如果设置为 true,即使当用户在抽屉的子元素上开始滑动时,滑动事件也会打开抽屉。这在抽屉部分可见的情况下非常有用。您可以使用回调进一步自定义它,以确定用户可以拖动哪些子元素来打开抽屉(例如,忽略处理触摸移动事件的其他元素,如滑块)。

childrennode-

组件的内容。

disableBackdropTransitionboolfalse

禁用背景幕过渡效果。这可以提高低端设备上的 FPS。

disableDiscoveryboolfalse

如果 true,触摸屏幕靠近抽屉边缘的位置不会稍微滑入抽屉,以防止意外发现滑动操作。

disableSwipeToOpenbooltypeof navigator !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent)

如果 true,则禁用滑动打开功能。这在滑动会触发导航操作的浏览器中很有用。默认情况下,在 iOS 浏览器上禁用滑动打开功能。

hysteresisnumber0.52

影响抽屉必须打开/关闭多远才能改变其状态。以抽屉宽度的百分比 (0-1) 指定

minFlingVelocitynumber450

定义了从哪个(平均)速度开始,滑动被定义为完成,即使未达到滞后。良好的阈值在 250 - 1000 像素/秒之间

openboolfalse

如果 true,则显示组件。

slotProps{ backdrop?: func
| object, docked?: func
| object, paper?: func
| object, root?: func
| object, swipeArea?: func
| object, transition?: func
| object }
{}

用于每个内部插槽的 props。

slots{ backdrop?: elementType, docked?: elementType, paper?: elementType, root?: elementType, swipeArea?: elementType, transition?: elementType }{}

用于每个内部插槽的组件。

SwipeAreaPropsobject-

该元素用于拦截边缘的触摸事件。

swipeAreaWidthnumber20

最左侧(或最右侧)区域的宽度,单位为 px,可以从该区域滑动打开抽屉。

transitionDurationnumber
| { appear?: number, enter?: number, exit?: number }
{ enter: theme.transitions.duration.enteringScreen, exit: theme.transitions.duration.leavingScreen, }

过渡的持续时间,以毫秒为单位。您可以为所有过渡指定一个超时时间,也可以使用对象单独指定。

ref 被转发到根元素。

继承

虽然上面没有明确文档说明,但 Drawer 组件的 props 也可在 SwipeableDrawer 中使用。您可以利用这一点来定位嵌套组件

插槽

插槽名称类名默认组件描述
swipeAreadiv用于 swipeArea 插槽的组件。

CSS 类

这些类名对于使用 CSS 设置样式很有用。当触发特定状态时,它们将应用于组件的插槽。

类名规则名称描述
.MuiDrawer-anchorBottomanchorBottom如果 anchor="bottom",则应用于根元素的样式。
.MuiDrawer-anchorLeftanchorLeft如果 anchor="left",则应用于根元素的样式。
.MuiDrawer-anchorRightanchorRight如果 anchor="right",则应用于根元素的样式。
.MuiDrawer-anchorTopanchorTop如果 anchor="top",则应用于根元素的样式。
.MuiDrawer-dockeddocked如果 variant="permanent or persistent",则应用于根元素的样式。
.MuiDrawer-modalmodal应用于 Modal 组件的样式。
.MuiDrawer-paperpaper应用于 Paper 组件的样式。
.MuiDrawer-paperAnchorBottompaperAnchorBottom如果 anchor="bottom",则应用于 Paper 组件的样式。
.MuiDrawer-paperAnchorDockedBottompaperAnchorDockedBottom如果 anchor="bottom"variant 不是 "temporary",则应用于 Paper 组件的样式。
.MuiDrawer-paperAnchorDockedLeftpaperAnchorDockedLeft如果 anchor="left"variant 不是 "temporary",则应用于 Paper 组件的样式。
.MuiDrawer-paperAnchorDockedRightpaperAnchorDockedRight如果 anchor="right"variant 不是 "temporary",则应用于 Paper 组件的样式。
.MuiDrawer-paperAnchorDockedToppaperAnchorDockedTop如果 anchor="top"variant 不是 "temporary",则应用于 Paper 组件的样式。
.MuiDrawer-paperAnchorLeftpaperAnchorLeft如果 anchor="left",则应用于 Paper 组件的样式。
.MuiDrawer-paperAnchorRightpaperAnchorRight如果 anchor="right",则应用于 Paper 组件的样式。
.MuiDrawer-paperAnchorToppaperAnchorTop如果 anchor="top",则应用于 Paper 组件的样式。
.MuiDrawer-rootroot应用于根元素的样式。

您可以使用以下自定义选项之一来覆盖组件的样式

源代码

如果您在此页面中找不到所需信息,请考虑查看组件的实现以获取更多详细信息。