更新记录
v0.1.1(2026-06-30)
下载此版本
增加closeOnOverlay参数,控制是否点击遮罩关闭
v0.1.0(2026-06-30)
下载此版本
首次上传
平台兼容性
uni-app(3.7.13)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| - |
√ |
√ |
- |
√ |
- |
- |
- |
- |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| - |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
布丁弹窗组件 (pudding-popup)
组件介绍
pudding-popup 是一个布丁弹窗组件,提供了带 3D 翻转缩放入场动画的弹窗效果,支持自定义尺寸、圆角、背景色和动画方向,适用于活动弹窗、通知提示、卡片展示等场景。
组件属性
| 属性 |
类型 |
默认值 |
说明 |
| v-model / modelValue |
Boolean |
false |
弹窗显示状态 |
| width |
String |
75vw |
弹窗宽度 |
| height |
String |
350px |
弹窗高度 |
| borderRadius |
String |
10px |
弹窗圆角 |
| bgColor |
String |
#ffffff |
弹窗背景色 |
| flip |
Boolean |
true |
是否启用翻转动画 |
| closeOnOverlay |
Boolean |
true |
是否允许点击遮罩关闭弹窗 |
组件事件
| 事件 |
说明 |
| update:modelValue |
弹窗显示状态变化时触发 |
| beforeOpen |
弹窗打开前触发 |
| open |
弹窗打开动画完成后触发 |
| beforeClose |
弹窗关闭前触发 |
| close |
弹窗关闭时触发 |
组件方法
| 方法 |
说明 |
| open() |
打开布丁弹窗 |
| close() |
关闭布丁弹窗 |
组件插槽
使用示例
<script setup lang="ts">
import { ref } from 'vue'
import PuddingPopup from '@/components/wot/popup/pudding-popup.vue'
const showBasic = ref(false)
const showLarge = ref(false)
const showRound = ref(false)
const showColored = ref(false)
const showNoFlip = ref(false)
const showNoOverlayClose = ref(false)
</script>
<template>
<view class="container">
<wd-button type="primary" @click="showBasic = true">
打开布丁弹窗
</wd-button>
<wd-button type="primary" @click="showLarge = true">
打开大尺寸弹窗
</wd-button>
<PuddingPopup v-model="showBasic">
<text>这是一个布丁弹窗</text>
</PuddingPopup>
<PuddingPopup v-model="showLarge" width="85vw" height="450px">
<text>大尺寸布丁弹窗</text>
</PuddingPopup>
<PuddingPopup v-model="showRound" border-radius="30px">
<text>大圆角布丁弹窗</text>
</PuddingPopup>
<PuddingPopup v-model="showColored" bg-color="#f2f4fd">
<text>自定义背景布丁弹窗</text>
</PuddingPopup>
<PuddingPopup v-model="showNoFlip" :flip="false">
<text>无翻转布丁弹窗</text>
</PuddingPopup>
<PuddingPopup v-model="showNoOverlayClose" :close-on-overlay="false">
<text>禁止点击遮罩关闭</text>
</PuddingPopup>
</view>
</template>
<style scoped>
.container {
min-height: 100vh;
background-color: #f5f5f5;
padding: 20rpx;
}
</style>
注意事项
- 推荐使用
v-model 双向绑定控制弹窗显示状态,使用方式更简洁
- 组件默认使用 3D 翻转缩放入场动画,可通过
flip 属性关闭翻转效果
- 弹窗宽度和高度支持任意 CSS 单位(vw、px、rpx 等)
- 背景色支持颜色值和 CSS 渐变值(如
linear-gradient)
- 弹窗内置了关闭按钮,点击可关闭弹窗
- 点击遮罩层也会触发关闭弹窗
- 也可通过
ref 调用 open() 和 close() 方法以编程方式控制弹窗