uni-app:模态框的实现(弹窗实现)

news2024/11/17 21:28:48

效果图

代码

标签

<template>
	<view>
		<!-- 按钮用于触发模态框的显示 -->
		<button @click="showModal = true">显示模态框</button>
		<!-- 模态框组件 -->
		<view class="modal" v-if="showModal">
			<view class="modal-content">
				<view>{{ modalTitle }}</view>
				<view>{{ modalContent }}</view>
				<view class="modal-buttons">
					<button @click="handleConfirm">确认</button>
					<button @click="handleCancel">取消</button>
				</view>
			</view>
		</view>
	</view>
</template>

注:

@click="showModal = true"

这段代码的意思是在按钮被点击时,通过将 showModal 的值设置为 true 来显示模态框。

在上面的代码示例中,我们使用了 Vue.js 的事件绑定语法 @click 来监听按钮的点击事件。showModal = true 是在按钮点击时执行的操作,它将 showModal 的值设为 true,从而触发显示模态框。这样,当用户点击按钮时,模态框将会显示出来。

样式 

<style scoped lang="scss">
	/* 遮罩层 */
	.modal {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: rgba(0, 0, 0, 0.5);
		display: flex;
		justify-content: center;
		align-items: center;
	}
	/* 窗口 */
	.modal-content {
		background-color: white;
		/* padding: 20px; */
		width: 600rpx;
		height: 800rpx;
		border-radius: 8rpx;
		position: relative;
		//modal-content下的第一个view
		view:first-child{
			padding:30rpx;
			font-size:60rpx;
			font-weight:bold;
			font-family:'宋体';
		}
		//modal-content下的第二个view
		view:nth-child(2){
			padding:40rpx;
			font-size:40rpx;
			color:red
		}
	}
	/* 按钮 */
	.modal-buttons {
		width: 100%;
		display: flex;
		bottom: 0;
		position: absolute;
	}
	.modal-buttons button {
		width: 100%;
		border: none;
	}
	.modal-buttons button:first-child {
		background-color: #74bfe7;
		color: #fff;
		border-radius: 0;
	}
	.modal-buttons button:last-child {
		width: 100%;
		border: 2rpx solid #74bfe7;
		border-radius: 0px;
		background-color: #fff;
		color: #74bfe7;
	}
</style>

js

<script>
	export default {
		data() {
			return {
				showModal: false,
				modalTitle: '模态框',
				modalContent: '内容'
			};
		},
		methods: {
			//确认
			handleConfirm() {
				// 处理模态框确认按钮点击事件
				// 可以在这个方法中执行你需要的操作
				this.showModal = false; // 关闭模态框
			},
			//取消
			handleCancel() {
				// 处理模态框取消按钮点击事件
				// 可以在这个方法中执行你需要的操作
				this.showModal = false; // 关闭模态框
			}
		}
	};
</script>

解析

在 HTML 部分:

  • 使用 button 元素作为触发显示模态框的按钮。
  • 使用 v-if 指令来决定是否显示模态框。
  • 模态框组件使用 view 元素包裹,并设置相应的样式。

在 JavaScript 部分:

  • data 函数返回了组件的初始状态,其中包括一个控制是否显示模态框的变量 showModal,以及模态框的标题和内容。
  • handleConfirm 和 handleCancel 方法分别用于处理确认按钮和取消按钮的点击事件,在这些方法中可以执行需要的操作。
  • 在这个例子中,点击确认或取消按钮后,通过将 showModal 设置为 false 来关闭模态框。

在样式部分:

  • 使用 scoped 关键字将样式限定在组件范围内。
  • .modal 类设置遮罩层的样式,使其覆盖整个页面,并使用 Flex 布局将内容垂直居中。
  • .modal-content 类设置模态框的样式,包括背景颜色、宽度和高度等。
  • .modal-buttons 类设置按钮的样式,包括使其位于模态框底部,并使用 Flex 布局将按钮撑满整个宽度
  • 第一个按钮使用 #74bfe7 背景色和白色文字,表示确认操作
  • 第二个按钮使用 #74bfe7 边框和白色背景色,表示取消操作。

完整代码 

<template>
	<view>
		<!-- 按钮用于触发模态框的显示 -->
		<button @click="showModal = true">显示模态框</button>
		<!-- 模态框组件 -->
		<view class="modal" v-if="showModal">
			<view class="modal-content">
				<view>{{ modalTitle }}</view>
				<view>{{ modalContent }}</view>
				<view class="modal-buttons">
					<button @click="handleConfirm">确认</button>
					<button @click="handleCancel">取消</button>
				</view>
			</view>
		</view>
	</view>
</template>
<script>
	export default {
		data() {
			return {
				showModal: false,
				modalTitle: '模态框',
				modalContent: '内容'
			};
		},
		methods: {
			//确认
			handleConfirm() {
				// 处理模态框确认按钮点击事件
				// 可以在这个方法中执行你需要的操作
				this.showModal = false; // 关闭模态框
			},
			//取消
			handleCancel() {
				// 处理模态框取消按钮点击事件
				// 可以在这个方法中执行你需要的操作
				this.showModal = false; // 关闭模态框
			}
		}
	};
</script>

<style scoped lang="scss">
	/* 遮罩层 */
	.modal {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: rgba(0, 0, 0, 0.5);
		display: flex;
		justify-content: center;
		align-items: center;
	}

	/* 窗口 */
	.modal-content {
		background-color: white;
		/* padding: 20px; */
		width: 600rpx;
		height: 800rpx;
		border-radius: 8rpx;
		position: relative;
		//modal-content下的第一个view
		view:first-child{
			padding:30rpx;
			font-size:60rpx;
			font-weight:bold;
			font-family:'宋体';
		}
		//modal-content下的第二个view
		view:nth-child(2){
			padding:40rpx;
			font-size:40rpx;
			color:red
		}
	}
	/* 按钮 */
	.modal-buttons {
		width: 100%;
		display: flex;
		bottom: 0;
		position: absolute;
	}
	.modal-buttons button {
		width: 100%;
		border: none;
	}
	.modal-buttons button:first-child {
		background-color: #74bfe7;
		color: #fff;
		border-radius: 0;
	}
	.modal-buttons button:last-child {
		width: 100%;
		border: 2rpx solid #74bfe7;
		border-radius: 0px;
		background-color: #fff;
		color: #74bfe7;
	}
</style>

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安科瑞能源物联网以能源供应、能源管理、设备管理、能耗分析的能源流向为主线-安科瑞黄安南

摘要&#xff1a;随着科学技术的发展&#xff0c;我国的物联网技术有了很大进展。为了提升电力抄表服务的稳定性&#xff0c;保障电力抄表数据的可靠性&#xff0c;本文提出并实现了基于物联网的智能电力抄表服务平台&#xff0c;结合云计算、大数据等技术&#xff0c;提供电力…

测试老鸟经验,性能测试重点17个疑难解答,一篇打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、如何理解性能测…

三层交换基础实验

要求: 1.IP地址基于192.168.1.0/24划分 2.使用OSPF 3.使用DHCP 4.全网可达 1.配置二层交换 SW 3 <Huawei>system-view [Huawei]sysname SW3 [SW3]interface GigabitEthernet 0/0/2 [SW3-GigabitEthernet0/0/2]port link-type access [SW3-GigabitEthernet0/0/2]por…

Spring5学习笔记 — IOC

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; Spring专栏 ✨特色专栏&a…

XCP详解「3.1·ASAP2新建A2L文件」

返回 XCP详解「总目录」 ASAP2中新建A2L文件 通过ASAP2生成需要A2L文件更常用些 新建Database ASAP2界面打开如下 设置标定信号数量最大值 导入elf文件&#xff0c;elf路径建议直接索引编译生成的Debug下的&#xff0c;防止编译后忘记更新 加载信号 查找需要监控或者修改的变…

SDUT 2023 summer team contest(for 22) - 5

K - City 题意&#xff1a;n城市之间连接无方向的道路&#xff0c;每个道路都有能量&#xff0c;敌人发动攻击&#xff0c;来摧毁这些道路&#xff0c;如果敌人发动x的攻击&#xff0c;则所有能力小于等于x的道路都将被摧毁&#xff0c;问有有多少对城市可以到达对方 思路&am…

JAVA面试总结-Redis篇章(六)——数据过期策略

Java面试总结-Redis篇章&#xff08;六&#xff09;——数据过期策略 Redis数据删除策略——惰性删除Redis数据删除策略——定期删除 Redis数据删除策略——惰性删除 Redis数据删除策略——定期删除

三、函数-3.数值函数

一、常见函数 二、示例 -- 向上取整 2 select ceil(1.5); select ceil(1.1);-- 向下取整 1 select floor(1.2); select floor(1.9);-- 返回x/y的模&#xff08;取余&#xff09; select mod(3, 4); /* 3 */ select mod(7, 4); /* 3 */ select mod(5, 4); /* 1…

NestJS 的 提供者 学习

提供者的基本概念 在 NestJs 中有一个提供者的概念&#xff0c;提供者可以是服务、缓存、工厂、数据库连接等。 提供者的主要思想就是它可以作为依赖注入项注入到需要使用的地方&#xff0c;这样我们就可以根据业务需求和自己的想法来组建业务功能组件从而让开发的灵活性大大…

【Winform学习笔记(四)】ComboBox获取电脑串口信息

ComboBox获取电脑串口信息 前言正文1、实现方法2、具体代码3、实现效果 前言 在本文中主要介绍 如何基于 Winform 框架实现 ComboBox 下拉框控件获取电脑串口信息。 正文 1、实现方法 在窗体添加一个 ComboBox 下拉框控件&#xff1b;通过 IO.Ports.SerialPort 获取串口信息…

【前端实习评审】对小说详情模块更新的后端接口压力流程进行了人群优化

大家好&#xff0c;本篇文章分享一下【校招VIP】免费商业项目“推推”第一期书籍详情模块 前端同学的开发文档周最佳作品。该同学来自安徽科技学院土木工程专业。本项目亮点难点&#xff1a; 1.热门书籍在更新点的访问压力&#xff1b; 2.书籍更新通知的及时性和有效性&#xf…

解决了项目中几个比较搞心态的bug

1、keep-alive 正常keep-alive的使用便可以做项目的缓存&#xff0c;但是我们的项目很不正常 项目是属于动态缓存&#xff0c;动态缓存有一个弊端 举个栗子&#xff1a; a组件为设置了需要缓存的页面&#xff1b; b组件为设置了需要缓存的页面&#xff1b; c组件为设置了不需…

讲解 @ServletComponentScan注解

目录: 1、用法介绍2、实例讲解 1、介绍 在SpringBoot项目启动器中添加ServletComponentScan注解后&#xff0c;SpringBoot在启动时会扫描并注册所有带有WebServlet&#xff08;控制器&#xff09;、WebFilter&#xff08;过滤器&#xff09;、WebListener&#xff08;监听器&a…

自定义字体服务 - 基于Node的Web字体解决方案

自定义字体服务 - 基于Node的Web字体解决方案 背景技术选型font-face介绍实现方案&#xff08;介绍字体设计、转换、兼容性处理等技术实现细节。&#xff09;接口实现方式&#xff08;实现中遇到的问题和解决方案&#xff09;总结开源地址参考 背景 在前端开发中&#xff0c…

MySQL中LEFT JOIN的用法

原理 LEFT JOIN 关键字返回左表&#xff08;table1&#xff09;中的所有记录&#xff0c;以及右表&#xff08;table2&#xff09;中的匹配记录&#xff08;如果有&#xff09; 注意&#xff1a; LEFT JOIN 关键字返回左表&#xff08;Customers&#xff09;中的所有记录&…

家具小程序搭建攻略

要想快速搭建一个家具小程序商城&#xff0c;乔拓云平台是一个非常方便的选择。下面就来详细介绍一下制作的具体步骤。 首先&#xff0c;登录乔拓云平台&#xff0c;进入后台管理页面。在页面上找到【商城】选项&#xff0c;点击【去管理】进入后台管理页面。 在后台管理页面中…

【算法与数据结构】222、LeetCode完全二叉树的节点个数

文章目录 一、题目二、一般遍历解法三、利用完全二叉树性质四、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、一般遍历解法 思路分析&#xff1a;利用层序遍历&#xff0c;然后用num记录节点数量。其他的例如…

lama cleaner

这里写自定义目录标题 安装参数包含的额外plugins 安装 conda create --name lamacleaner python3.10 pip install -r requirements.txt pip install gfpgan pip install realesrgan pip install rembg pip install .如果安装本package报错&#xff0c;可以尝试改&#xff1…

【2023】Nacos下载与安装配置(2.2.3版本示例)

1、Nacos概述 1.1 什么是Nacos Nacos 是阿里巴巴推出来的一个新开源项目&#xff0c;这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集&#xff0c;帮助您快速实现动态服…

AndroidStudio Memory profiler(内存分析器)

1.Record Java/Kotlin allocations 查看java 层中对象的调用栈和短时间内创建对象的次数。可用于内存抖动快速分析,可用快速查找到该对象的调用栈(等同于mat) 从上图可见&#xff0c;短时间内创建了23个char[] 数组&#xff0c;其中最大的char[] 占用20k, 查看cll stack 调用…