uniapp 自定义popup 弹窗 简单封装(微信小程序)

效果并不完整,有需求可以自行修改

适用于vue2   弹窗只支持居中弹出和下方弹出,内容可以自定义

效果图

子组件 

代码

新建组件文件夹  zPopup  

<template><view class="zPopup_show" v-if="style_show":class="mode=='center'?(show?'zPopup_show_center openAnimation':'zPopup_show_center closeAnimation'):mode=='bottom'?(show?'zPopup_show_bottom  openAnimation':'zPopup_show_bottom  closeAnimation'):''"@tap.stop="maskClose?colosePopue():()=>{}"><view class="zSlotViews":class="mode=='bottom'?(show?'zSlotViews_bottom_open  ':'zSlotViews_bottom_close  '):''" @tap.stop="()=>{}"><view class="zSlotView"><image class="colseIcon" src="" mode="aspectFit" @tap.stop="colosePopue"></image><!-- 插槽内容可以自定义 --><slot name="center"></slot></view></view></view>
</template><script>export default {name: "zPopup",//show  主要控制动画效果//mode   设置方向弹出// maskClose  是否可以通过 点击遮罩层来关闭 弹窗props: ['show', 'mode', 'maskClose'],//style_show   控制显示不显示data() {return {style_show: null //控制显示不显示};},onLoad() {},onShow() {},watch: {show: {handler(newName, oldName) {// console.log(newName, '新值');// console.log(oldName, '老值');//为true是开启动画,动画效果不用延迟出现//为false是关闭动画,动画效果先关闭 再进行整个弹窗的关闭,不会出现回显数据消失if (newName) {this.style_show = newName;} else {setTimeout(() => {this.style_show = newName;}, 300)}},immediate: true,deep: true}},methods: {//关闭弹窗colosePopue() {if (!this.style_show) {return}this.$emit('closeCar')}}}
</script><style lang="scss" scoped>//居中显示.zPopup_show_center {width: 100vw;height: 100vh;position: fixed;top: 0;left: 0;z-index: 999999999;background: rgba(0, 0, 0, 0.6);display: flex;justify-content: center;align-items: center;opacity: 1;border-radius: 0rpx !important;}.openAnimation {animation: slow_show 0.22s linear;}.closeAnimation {opacity: 0 !important;animation: close_slow_show 0.22s linear;}@keyframes slow_show {0% {opacity: 0;}100% {opacity: 1;}}@keyframes close_slow_show {0% {opacity: 1;}100% {opacity: 0;}}//从下方弹出显示.zPopup_show_bottom {width: 100vw;height: 100vh;position: fixed;bottom: 0;left: 0;z-index: 999999999;background: rgba(0, 0, 0, 0.6);display: flex;justify-content: center;align-items: flex-end;opacity: 1;border-radius: 18rpx;.zSlotViews {width: 100% !important;position: relative;bottom: 0;left: 0;// padding: 30rpx 50rpx !important;}.zSlotViews_bottom_open {animation: From_bottom_to_top 0.22s linear;}.zSlotViews_bottom_close {animation: From_top_to_bottom 0.3s linear;}}@keyframes From_bottom_to_top {0% {bottom: -100%;}100% {bottom: 0;}}@keyframes From_top_to_bottom {0% {bottom: 0;}100% {bottom: -100%;}}.zSlotViews {width: 100vw !important;box-sizing: border-box;// background: #fff;.zSlotView {// background: #FFFFFF;width: 100vw;border-radius: 12rpx;position: relative;z-index: 10074;display: flex;justify-content: center;align-items: center;.colseIcon {width: 40rpx;height: 40rpx;position: absolute;right: 30rpx;top: 30rpx;background: lightcoral;}}}
</style>

全局使用 挂载

//挂载悬浮窗
import zPopup from '@/components/zPopup/zPopup.vue'
Vue.component('zPopup ', zPopup )

单独使用

import zPopup from "@/components/zPopup /zPopup .vue"
components: {zPopup},

父组件使用

<template><view><view class=""><zPopup :show="show" :mode="'center'" @closeCar="closeCar"><!-- 插槽可自定义内容 --><template v-slot:center><view style="width: 100%;height: 500rpx;background: #fff;border-radius: 40rpx;"></view></template></zPopup></view><view class="" @tap="open()">打开</view></view>
</template>

js

<script>import zPopup from "@/components/zPopup /zPopup .vue"export default {data() {return {show: false,};},components: {zPopup},methods: {//打开弹窗open() {//做一些数据回显的话优先调接口,再显示弹窗setTimeout(() => {this.show = true;}, 200)},//关闭弹窗closeCar() {this.show = false;},}}
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/477421.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络爬虫——常见问题与调试技巧

在开发网络爬虫的过程中&#xff0c;开发者常常会遇到各种问题&#xff0c;例如网页加载失败、数据提取错误、反爬机制限制等。以下内容将结合实际经验和技术方案&#xff0c;详细介绍解决常见错误的方法&#xff0c;以及如何高效调试和优化爬虫代码。 1. 爬虫过程中常见的错误…

[面试]-golang基础面试题总结

文章目录 panic 和 recover**注意事项**使用 pprof、trace 和 race 进行性能调试。**Go Module**&#xff1a;Go中new和make的区别 Channel什么是 Channel 的方向性&#xff1f;如何对 Channel 进行方向限制&#xff1f;Channel 的缓冲区大小对于 Channel 和 Goroutine 的通信有…

从 HTML 到 CSS:开启网页样式之旅(二)—— 深入探索 CSS 选择器的奥秘

从 HTML 到 CSS&#xff1a;开启网页样式之旅&#xff08;二&#xff09;—— 深入探索 CSS 选择器的奥秘 前言一、CSS基本选择器1. 通配选择器2. 元素选择器3. 类选择器4. id选择器5.基本选择器总结 二、CSS复合选择器1. 后代选择器2. 子选择器3. 相邻兄弟选择器4.交集选择器5…

Python的3D可视化库 - vedo (2)visual子模块 基本可视化行为

文章目录 1. visual模块的继承关系2. 基类CommonVisual的方法2.1 获取对象信息2.1.1 对象本身信息2.1.2 对象的查找表2.1.3 对象标量范围2.1.4 对象缩略图 2.2 呈现对象2.2.1 在窗口显示1.2.2 对象可见性 2.2.3 对象颜色2.2.4 对象透明度 2.3 添加标度条2.3.1 2D标度条2.3.2 3D…

Typora+PicGo+云服务器搭建博客图床

文章目录 前言一. 为什么要搭建博客图床&#xff1f;1.1 什么是图床&#xff1f;1.2 为什么要搭建博客图床? 二. 安装软件三. 配置阿里云OSS3.1 注册,开通对象储存3.2 创建bucket3.3 找到你的地域节点3.4 accessKeyId和accessKeySecret3.5 给你的阿里云账户充值 四. 配置4.1 配…

下载安装Android Studio

&#xff08;一&#xff09;Android Studio下载地址 https://developer.android.google.cn/studio 滑动到 点击下载文档 打开新网页 切换到english ![](https://i-blog.csdnimg.cn/direct/b7052b434f9d4418b9d56c66cdd59fae.png 等待一会&#xff0c;出现 点同意后&#xff0…

【LSTM实战】跨越千年,赋诗成文:用LSTM重现唐诗的韵律与情感

本文将介绍如何使用LSTM训练一个能够创作诗歌的模型。为了训练出效果优秀的模型&#xff0c;我整理了来自网络的4万首诗歌数据集。我们的模型可以直接使用预先训练好的参数&#xff0c;这意味着您无需从头开始训练&#xff0c;即可在自己的电脑上体验AI作诗的乐趣。我已经为您准…

大语言模型---梯度的简单介绍;梯度的定义;梯度计算的方法

1. 梯度介绍 如果我们在一座山上&#xff08;一个山的坡度有很多&#xff0c;陡峭的&#xff0c;平缓的&#xff09;&#xff0c;想要从山顶下山。而梯度就像告诉我们如何沿着最陡的下坡路线走&#xff0c;以尽快到达山脚&#xff08;最低点&#xff09;。 2. 梯度的定义 梯度…

鸿蒙学习高效开发与测试-测试工具(5)

文章目录 1、单元测试2、集成测试1. UI 测试框架2. DevEco Testing 测试平台2.1 稳定性测试2.2 场景化性能测试2.3 回归测试2.4 基础质量测试服务3. 命令行测试工具3.1 DevEco Testing SmartPerf3.2 DevEco Testing wukong3、专项测试1. 应用与服务体检2. 专项测试云测平台鸿蒙…

NFS搭建

NFS搭建 单节点安装配置服务器安装配置启动并使NFS服务开机自启客户端挂载查看是否能发现服务器的共享文件夹创建挂载目录临时挂载自动挂载 双节点安装配置服务器安装配置服务端配置NFS服务端配置Keepalived编辑nfs_check.sh监控脚本安装部署RsyncInofity 客户端 单节点安装配置…

基于CNN+RNNs(LSTM, GRU)的红点位置检测(pytorch)

1 项目背景 需要在图片精确识别三跟红线所在的位置&#xff0c;并输出这三个像素的位置。 其中&#xff0c;每跟红线占据不止一个像素&#xff0c;并且像素颜色也并不是饱和度和亮度极高的红黑配色&#xff0c;每个红线放大后可能是这样的。 而我们的目标是精确输出每个红点的…

使用 Elastic 收集 Windows 遥测数据:ETW Filebeat 输入简介

作者&#xff1a;来自 Elastic Chema Martinez 在安全领域&#xff0c;能够使用 Windows 主机的系统遥测数据为监控、故障排除和保护 IT 环境开辟了新的可能性。意识到这一点&#xff0c;Elastic 推出了专注于 Windows 事件跟踪 (ETW) 的新功能 - 这是一种强大的 Windows 原生机…

leetcode刷题记录(四十二)——101. 对称二叉树

&#xff08;一&#xff09;问题描述 . - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/symmetric-tree/description/给你…

LeetCode 力扣 热题 100道(九)反转链表(C++)

给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 方法一&#xff1a;迭代法 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNod…

取电快充协议芯片,支持全协议、内部集成LDO支持从UART串口读取电压电流消息

H004D 是一款支持全协议的受电端诱骗取电协议芯片&#xff0c;支持宽电压输入 3.3V~30V&#xff0c;芯片内部集成LDO&#xff0c;可输出 3.3V电压, 支持 通过UART 串口读取电压电流&#xff0c;支持定制功能&#xff0c;芯片采用QFN_20封装&#xff0c;线路简单&#xff0c;芯片…

FreeRTOS——事件标志组

一、概念与应用 1.1概念 事件是实现任务与任务或任务与中断间 通信的机制&#xff0c;用于同步&#xff0c;无数据传输。&#xff08;注意与二值信号量区分&#xff09; 与信号量不同的是&#xff0c;事件可以实现一对多、多对多的同步&#xff0c;即一个任务可以等待多个事…

window11编译pycdc.exe

一、代码库和参考链接 在对python打包的exe文件进行反编译时&#xff0c;会使用到uncompyle6工具&#xff0c;但是这个工具只支持python3.8及以下&#xff0c;针对更高的版本的python则不能反编译。 关于反编译参考几个文章&#xff1a; Python3.9及以上Pyinstaller 反编译教…

【100ask】IMX6ULL开发板用SPI驱动RC522模块

目录 一、问题汇总&#xff1a; 1.无法寻卡 2.寻卡不稳定 二、修改设备树 三、驱动程序 四、测试程序 1.rc522_ap.c 2.rc522_app.h 3.rc522_test.c 4.Makefile 前言&#xff1a; CSDN上大部分对于RC522的文章都是正点的&#xff0c;虽然文章写的挺详细&#xff0c;两…

springboot购物推荐网站的设计与实现(代码+数据库+LW)

摘要 随着信息互联网购物的飞速发展&#xff0c;一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了东大每日推购物推荐网站的开发全过程。通过分析企业对于东大每日推购物推荐网站的需求&#xff0c;创建了一个计算机管理东大每日推购物推荐网站的方案。文章介…

小R的二叉树探险 | 模拟

问题描述 在一个神奇的二叉树中&#xff0c;结构非常独特&#xff1a; 每层的节点值赋值方向是交替的&#xff0c;第一层从左到右&#xff0c;第二层从右到左&#xff0c;以此类推&#xff0c;且该二叉树有无穷多层。 小R对这个二叉树充满了好奇&#xff0c;她想知道&#xf…