BottomSheet 底部抽屉
移动端底部抽屉承载件:底部升起面板 + 拖拽把手 + 遮罩,下滑把手/点遮罩/Esc 三种关闭手势,safe-area 刘海屏手势区与焦点陷阱内置;passive 被动透传模式可作浮层组件 PC 形态的结构占位。
基础用法
基础用法
面板从底部升起并带遮罩;下滑把手(超过阈值)、点击遮罩、按 Esc 均会请求关闭——oas-close 的 detail.reason 区分来源(drag / backdrop / esc)。组件不擅自改受控 open,收起由宿主移除属性完成。
max-height 与内容滚动
max-height 与内容滚动
max-height 限制面板最大高度(默认 85vh),内容超出时在面板内部滚动,不撑破视口。
passive 被动透传(结构占位)
passive 被动透传(结构占位)
passive 模式:无遮罩、无把手、无浮层定位与手势行为,仅静态渲染结构占位——虚线框示意承载结构边界(passive 下宿主为 display:contents,不留自身盒),供浮层组件 PC 形态复用同一结构(SSR/客户端结构严格一致)。
API
oas-bottom-sheet
属性
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
max-height | 面板最大高度,默认 85vh;内容超出时在面板内部滚动 | string | — |
open | 受控展开态(唯一状态源)。抽屉打开时显示底部面板与遮罩;下滑把手/点遮罩/Esc 手势只派发 oas-close 请求,由宿主移除 open 完成收起(组件不擅自改受控值) | boolean | — |
passive | 被动透传模式——隐藏遮罩与拖拽把手、取消浮层定位与手势行为,仅渲染静态结构占位(供浮层组件 PC 形态结构复用;SSR/客户端结构严格一致) | boolean | — |
事件
| 事件 | 说明 |
|---|---|
oas-close | 请求关闭,detail.reason 为 drag(下滑把手超阈值)/ backdrop(点击遮罩)/ esc(Esc 键);组件只派发事件不改 open,由宿主决定收起 |
插槽
| 名称 | 说明 |
|---|---|
| 默认 | 面板主体内容 |
CSS 变量
| CSS 变量 | 默认值 |
|---|---|
--oas-bottom-sheet-max-height | 85vh |
--oas-glass-blur | none |
--oas-glass-ring | transparent |
open为受控属性:组件手势(下滑/遮罩/Esc)只派发oas-close,收起由宿主移除open完成。- 焦点陷阱内置:打开时焦点移到面板内首个可聚焦元素并锁在面板内;safe-area-inset-bottom 自动适配刘海屏手势区。
passive模式面向浮层组件的 PC 形态结构复用(select/date-picker 等移动形态的承载底座),单独使用时即静态面板。