Skip to content

Overlay 遮罩层

介绍

创建一个遮罩层,通常用于阻止用户进行其他操作

基础用法

使用 visible 控制遮罩层的显示/隐藏

html
<template>
  <nut-overlay v-model:visible="visible" :z-index="2000"></nut-overlay>
</template>
ts
const visible = ref(false)

遮罩样式

通过 overlay-style 进行设置遮罩样式

html
<template>
  <nut-overlay v-model:visible="visible"
               :overlay-style="overlayStyles"
               :z-index="2000"></nut-overlay>
</template>
ts
const overlayStyles = {
  backgroundColor: 'rgba(0, 0, 0, .2)',
}

设置动画时间

通过 duration 设置遮罩显示/隐藏的时间,时间 s

html
<template>
  <nut-overlay v-model:visible="visible"
               :z-index="2000"
               :duration="2500"></nut-overlay>
</template>

锁定背景滚动

通过 lock-scroll 设置遮罩在显示时是否锁定背景,禁止滚动, 这个属性仅支持 H5

html
<template>
  <nut-overlay v-model:visible="visible"
               :z-index="2000"
               lock-scroll></nut-overlay>
</template>

锁定背景滚动 (小程序与 APP)

lock-scroll属性仅能在 H5生效,因为在 uniapp中没有办法有效的控制,因此我们只能使用官方提供的方法, 通过page-meta标签控制

html
<template>
  <page-meta :page-style="`overflow: ${visible ? 'hidden' : 'visible'}`"></page-meta>

  <view class="container">
    <!-- 普通弹窗 -->
    <nut-overlay v-model:visible="visible"></nut-overlay>
  </view>
</template>

嵌套内容

支持默认 slot,可嵌套任意内容

html
<template>
  <nut-overlay v-model:visible="visible" :z-index="2000">
    <view class="wrapper">
      <view class="content">这里是正文</view>
    </view>
  </nut-overlay>
</template>

点击遮罩不关闭

设置 close-on-click-overlay 可控制点击遮罩是否关闭,如果设置为 true,那么 click 事件也将同时失效

html
<template>
  <nut-overlay v-model:visible="visible"
               :z-index="2000"
               :close-on-click-overlay="false">
    <view class="wrapper">
      <view class="content" @click.stop="visible = false">close</view>
    </view>
  </nut-overlay>
</template>

API

Props

参数说明类型默认值
v-model:visible控制遮罩的显示/隐藏booleanfalse
z-index自定义遮罩层级number-
duration显示/隐藏的动画时长,单位毫秒string / number300
overlay-class自定义遮罩类名string-
overlay-style自定义遮罩样式CSSProperties-
lock-scroll H5遮罩显示时的背景是否锁定booleanfalse
close-on-click-overlay点击遮罩时是否关闭booleantrue
destroy-on-close弹层关闭后 slot 内容会不会清空booleanfalse

Events

事件名说明回调参数
click点击时触发event: MouseEvent

Slots

名称说明
default内嵌遮罩内容自定义

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件

名称默认值
--nut-overlay-bg-colorrgba(0, 0, 0, 0.7)

MIT Licensed