SwipeableDrawerAPI
React SwipeableDrawer 组件的 API 参考文档。了解此导出模块的 props、CSS 和其他 API。
演示
导入
import SwipeableDrawer from '@mui/material/SwipeableDrawer';
// or
import { SwipeableDrawer } from '@mui/material';
通过阅读关于最小化 bundle size 的指南,了解它们之间的区别。
Drawer 组件的 Props 也可用。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
onClose* | func | - | 当组件请求关闭时触发的回调。 签名: function(event: React.SyntheticEvent<{}>) => void
|
onOpen* | func | - | 当组件请求打开时触发的回调。 签名: function(event: React.SyntheticEvent<{}>) => void
|
allowSwipeInChildren | func | bool | false | 如果设置为 true,即使当用户在抽屉的子元素上开始滑动时,滑动事件也会打开抽屉。这在抽屉部分可见的情况下非常有用。您可以使用回调进一步自定义它,以确定用户可以拖动哪些子元素来打开抽屉(例如,忽略处理触摸移动事件的其他元素,如滑块)。 |
children | node | - | 组件的内容。 |
disableBackdropTransition | bool | false | 禁用背景幕过渡效果。这可以提高低端设备上的 FPS。 |
disableDiscovery | bool | false | 如果 |
disableSwipeToOpen | bool | typeof navigator !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent) | 如果 |
hysteresis | number | 0.52 | 影响抽屉必须打开/关闭多远才能改变其状态。以抽屉宽度的百分比 (0-1) 指定 |
minFlingVelocity | number | 450 | 定义了从哪个(平均)速度开始,滑动被定义为完成,即使未达到滞后。良好的阈值在 250 - 1000 像素/秒之间 |
open | bool | false | 如果 |
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 } | {} | 用于每个内部插槽的组件。 |
SwipeAreaProps | object | - | 该元素用于拦截边缘的触摸事件。 |
swipeAreaWidth | number | 20 | 最左侧(或最右侧)区域的宽度,单位为 |
transitionDuration | number | { appear?: number, enter?: number, exit?: number } | { enter: theme.transitions.duration.enteringScreen, exit: theme.transitions.duration.leavingScreen, } | 过渡的持续时间,以毫秒为单位。您可以为所有过渡指定一个超时时间,也可以使用对象单独指定。 |
ref
被转发到根元素。继承
虽然上面没有明确文档说明,但 Drawer 组件的 props 也可在 SwipeableDrawer 中使用。您可以利用这一点来定位嵌套组件。
插槽名称 | 类名 | 默认组件 | 描述 |
---|---|---|---|
swipeArea | div | 用于 swipeArea 插槽的组件。 |
这些类名对于使用 CSS 设置样式很有用。当触发特定状态时,它们将应用于组件的插槽。
类名 | 规则名称 | 描述 |
---|---|---|
.MuiDrawer-anchorBottom | anchorBottom | 如果 anchor="bottom" ,则应用于根元素的样式。 |
.MuiDrawer-anchorLeft | anchorLeft | 如果 anchor="left" ,则应用于根元素的样式。 |
.MuiDrawer-anchorRight | anchorRight | 如果 anchor="right" ,则应用于根元素的样式。 |
.MuiDrawer-anchorTop | anchorTop | 如果 anchor="top" ,则应用于根元素的样式。 |
.MuiDrawer-docked | docked | 如果 variant="permanent or persistent" ,则应用于根元素的样式。 |
.MuiDrawer-modal | modal | 应用于 Modal 组件的样式。 |
.MuiDrawer-paper | paper | 应用于 Paper 组件的样式。 |
.MuiDrawer-paperAnchorBottom | paperAnchorBottom | 如果 anchor="bottom" ,则应用于 Paper 组件的样式。 |
.MuiDrawer-paperAnchorDockedBottom | paperAnchorDockedBottom | 如果 anchor="bottom" 且 variant 不是 "temporary",则应用于 Paper 组件的样式。 |
.MuiDrawer-paperAnchorDockedLeft | paperAnchorDockedLeft | 如果 anchor="left" 且 variant 不是 "temporary",则应用于 Paper 组件的样式。 |
.MuiDrawer-paperAnchorDockedRight | paperAnchorDockedRight | 如果 anchor="right" 且 variant 不是 "temporary",则应用于 Paper 组件的样式。 |
.MuiDrawer-paperAnchorDockedTop | paperAnchorDockedTop | 如果 anchor="top" 且 variant 不是 "temporary",则应用于 Paper 组件的样式。 |
.MuiDrawer-paperAnchorLeft | paperAnchorLeft | 如果 anchor="left" ,则应用于 Paper 组件的样式。 |
.MuiDrawer-paperAnchorRight | paperAnchorRight | 如果 anchor="right" ,则应用于 Paper 组件的样式。 |
.MuiDrawer-paperAnchorTop | paperAnchorTop | 如果 anchor="top" ,则应用于 Paper 组件的样式。 |
.MuiDrawer-root | root | 应用于根元素的样式。 |
您可以使用以下自定义选项之一来覆盖组件的样式
- 使用全局类名。
- 在自定义主题中使用规则名称作为组件的
styleOverrides
属性的一部分。
源代码
如果您在此页面中找不到所需信息,请考虑查看组件的实现以获取更多详细信息。