Skip to content

Overlay 遮罩层

用于在页面上方添加半透明遮罩,以突出某个区域、阻止背景交互或承载浮层内容。

基础用法

vue
<script setup lang="ts">
import { ref } from 'vue'

const show = ref(false)
</script>

<template>
  <lk-overlay v-model="show" />
</template>

嵌入内容

默认插槽可直接承载浮层中的自定义内容。

vue
<lk-overlay v-model="show">
  <view class="overlay-card" @click.stop>
    <text>这是内容区域</text>
  </view>
</lk-overlay>

自定义透明度与背景色

vue
<template>
  <lk-overlay v-model="show" :opacity="0.8" />
  <lk-overlay v-model="show" background="rgba(15, 23, 42, 0.72)" />
</template>

关闭行为与滚动控制

vue
<template>
  <lk-overlay v-model="show" :close-on-click="false" />
  <lk-overlay v-model="show" :lock-scroll="false" />
</template>

推荐示例

1) 直接复用项目 Demo(推荐)

vue
<script setup lang="ts">
import OverlayDemo from '@/components/demos/overlay-demo.vue'
</script>

<template>
  <OverlayDemo />
</template>

2) 在业务页中按需组合

vue
<template>
  <view class="page-demo">
    <lk-overlay />
  </view>
</template>

API

Props

参数说明类型默认值
modelValue是否显示(v-model)booleanfalse
zIndex层级number900
opacity遮罩透明度number0.55
background自定义背景色;传入后优先于 opacitystring''
closeOnClick点击遮罩是否关闭booleantrue
lockScroll是否锁定背景滚动booleantrue
duration动画持续时间(毫秒)number240
id根节点 idstring''
customClass根节点自定义类名string | object | array
customStyle根节点自定义样式string | object

Events

事件名说明参数
click点击遮罩时触发(event?: Event) => void
open遮罩开始打开时触发() => void
close点击遮罩并触发关闭时触发(event?: Event) => void
update:modelValuev-model 状态更新(value: boolean) => void
after-enter入场动画结束() => void
after-leave离场动画结束() => void
touchmove触摸移动时触发,锁滚动时会阻止默认行为(event?: Event) => void

Slots

插槽名说明
default遮罩层中的内容

使用建议

TIP

如果只是给 popupmodal 这类组件提供背景蒙层,优先让这些组件自行管理;只有在你需要自定义覆盖内容时再直接使用 lk-overlay

基于 MIT 协议开源 · 粤ICP备2022114240号-3

Overlay 遮罩层

正在连接预览服务...

请先运行 pnpm run dev:h5