Skip to content

Overlay ​

Demo ​

Overlay Cross-platform Example and Preview

H5 LiveInteractive browser runtime
OverlayClick overlay to close

Basic Usage ​

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

const visible = ref(false)
</script>

<template>
  <VButton @click="visible = true">
    Open overlay
  </VButton>
  <VOverlay v-model:visible="visible" />
</template>

Z-index and Duration ​

vue
<template>
  <VOverlay v-model:visible="visible" :z-index="3000" :duration="0.2" />
</template>

Disable Overlay Close ​

vue
<template>
  <VOverlay v-model:visible="visible" :close-on-click-overlay="false" />
</template>

Props ​

PropTypeDefaultDescription
visibleboolean | undefinedundefinedControlled visibility
defaultVisiblebooleanfalseInitial uncontrolled visibility
disabledboolean | undefinedundefinedDisable internal visibility changes
zIndexnumber | stringundefinedOverlay z-index
durationnumber | stringundefinedAnimation duration; numbers are seconds
lockScrollbooleanfalseLock body scroll while visible
closeOnClickOverlaybooleantrueClose on overlay click

Events ​

EventPayloadDescription
update:visiblebooleanControlled sync event
visibleChangebooleanVisibility changed
closevoidClose requested
clickMouseEventOverlay clicked

Slots ​

SlotDescription
defaultCustom overlay content

Primitives

OverlayRoot uses useOverlayRoot for controlled/uncontrolled state and click-close behavior. H5 and Weapp primitives both reuse useBodyScrollLock.