Skip to content
在新窗口打开实时预览

Overlay 遮罩层 ​

带完整淡入淡出动画的全屏遮罩,可锁定遮罩区域滚动并承载自定义内容。

平台兼容性 ​

H5App微信小程序支付宝小程序
√√√√

基础用法 ​

vue
<snake-overlay v-model="visible" :opacity="0.65" :duration="300" lock-scroll>
  <view @click.stop>自定义内容</view>
</snake-overlay>

承载交互内容 ​

遮罩默认点击即关闭;插槽中的交互区域必须阻止事件冒泡。需要等待动画完成后再初始化内容时,监听 opened;关闭后清理临时状态可监听 closed。

vue
<snake-overlay v-model="visible" @opened="focusSearch" @closed="resetSearch">
  <view class="overlay-panel" @click.stop>
    <snake-input v-model="keyword" placeholder="搜索" />
    <snake-button @click="visible = false">完成</snake-button>
  </view>
</snake-overlay>

弹层本身已处理遮罩区域的滚动;插槽内的长内容应使用独立的 scroll-view,不要依赖背景页面滚动。

API ​

Props ​

参数说明类型默认值
modelValue / show显示状态和兼容别名booleanfalse
opacity黑色遮罩透明度number0.5
zIndex / duration层级和动画时长number10070 / 300
lockScroll是否阻止遮罩区域滚动booleantrue
customClass / customStyle自定义类名和样式多类型''

Events ​

事件名说明参数
update:modelValue点击后关闭 v-modelfalse
update:show更新兼容状态false
click点击遮罩原生事件
opened进入动画结束-
closed离开动画结束-

Slots ​

名称说明
default遮罩层内容

插槽内容需要自行使用 @click.stop 阻止点击后关闭遮罩。

主题变量 ​

Overlay 没有直接使用 CSS 主题变量。遮罩透明度、层级和自定义外观分别通过 opacity、zIndex 与 customStyle 配置。

为 uni-app 商城与 CMS 场景设计