Skip to content

Overlay 遮罩层

预览
01:38

组件名:rice-overlay

创建一个遮罩层,用于显示特定的内容

基础使用

通过 v-model 可以控制遮罩层的显示与否

html
<rice-overlay v-model:show="show" />

嵌入内容

需要注意的是,如果slot里面的元素有点击事件,该事件需要阻止冒泡

html
<rice-overlay v-model:show="show1">
  <view class="slot-box">
    <view class="slot-box_son" @click.stop="boxClick"></view>
  </view>
</rice-overlay>

<script setup>
  const boxClick=()=>{}
</script>
<style lang="scss">
.slot-box {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;

  &_son {
    background-color: #fff;
    border-radius: 4px;
    width: 120px;
    height: 120px;
  }
}

</style>

过渡时间

通过 duration 可以设置过渡时间,单位ms

html
<rice-overlay v-model:show="show2" :duration="600"></rice-overlay>

背景颜色

通过 bg-color 可以设置遮罩层的背景色

html
<rice-overlay v-model:show="show3" bg-color="rgba(0,0,0,.3)"></rice-overlay>

API

Props

属性名类型说明默认值
v-model:show/showBoolean是否显示-
z-indexNumber层级999
close-on-click-overlayBoolean是否在点击遮罩层后关闭true
durationNumber动画时长,单位ms300ms
bg-colorString自定义背景颜色-
custom-styleObject自定义样式-

Events

事件名说明回调参数
click点击遮罩层时触发(event:UniPointerEvent)
opened打开遮罩层动画结束时触发-
closed关闭遮罩层动画结束时触发-

Slot

名称说明
default自定义内容

类型定义

组件导出如下类型

ts
const overlayRef=ref<RiceOverlayComponentPublicInstance|null>(null)