当前位置: 首页 > article >正文

UNI-APP弹窗

 组件代码

<template>
	<view>
		<!-- 蒙版 -->
		<view class="mask" @click="close()" v-show="tanchuang"></view>
		<!-- 弹窗 -->
		<view class="pop" :style="{height:height*0.8 + 'px',top:tanchuang?height*0.2 + 'px':height + 'px'}">
			<!-- 头部 -->
			<view class="" style="width: 100%;" @click="close()">
				<view class="huaxian"></view>
			</view>
			<!-- 内容 -->
			<scroll-view scroll-y="true" :style="{maxHeight: `${scrollHeight}px`}">
				<slot></slot>
			</scroll-view>
		</view>
	</view>
</template>

<script>
	let systemInfo = uni.getSystemInfoSync();
	export default {
		name: "pop-up",
		props: {
			tanchuang: {
				type: Boolean,
				default: false
			}
		},
		data() {
			return {
				height: systemInfo.screenHeight,
				scrollHeight: systemInfo.screenHeight * 0.8 - uni.upx2px(100),

			};
		},
		methods: {
			close() {
				this.$emit('close');
			},
		}
	}
</script>

<style lang="scss">
	/* 划线 */
	.huaxian {
		height: 10rpx;
		width: 200rpx;
		background: #bbbbbb;
		border-radius: 100rpx;
		margin: auto;
		margin-top: 30rpx;
		margin-bottom: 30rpx;
	}

	/* 蒙版 */
	.mask {
		z-index: 998;
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background-color: rgba(0, 0, 0, 0.5);
	}

	/*  */

	.pop {
		position: fixed;
		// width: 750rpx;
		background-color: #fff;
		border-radius: 30rpx 30rpx 0 0;
		left: 0;
		right: 0;
		transition-property: top;
		transition-duration: 150ms;
		transition-timing-function: ease-in-out;
		z-index: 999;

		.title {
			padding: 30rpx 30rpx 0;
			align-items: center;
			justify-content: center;
			line-height: 40rpx;
		}

		&--close-btn {
			height: 40rpx;
			width: 40rpx;
			position: absolute;
			right: 30rpx;
			top: 30rpx;
		}
	}

	.border-bottom {
		width: 750rpx;
		border-bottom: 1rpx solid #e8e8e8;
		transform: scaleY(.5);
		margin-top: 30rpx;
	}
</style>

 组件的使用

<template>
	<view>

		<button @click="tanchuang = true">打开</button>
		<pop-up :tanchuang="tanchuang" @close="tanchuang = false">

			<view class="article-list">

				弹窗内容

			</view>

		</pop-up>

	</view>
</template>

<script>
	export default {
		data() {
			return {
				tanchuang: false
			}
		},
		methods: {

		}
	}
</script>

<style>

</style>


http://www.kler.cn/a/469266.html

相关文章:

  • Functions
  • “AI智慧语言训练系统:让语言学习变得更简单有趣
  • Centos7使用yum工具出现 Could not resolve host: mirrorlist.centos.org
  • FreeSWITCH dialplan/default.xml 之释疑
  • 【three.js】搭建环境
  • 牛客网刷题 ——C语言初阶(6指针)——字符逆序
  • Airflow:HttpSensor实现API驱动数据流程
  • MySQL(三)MySQL DML数据库操作语言
  • Linux硬盘分区 --- gdisk命令GPT分区
  • 基于Springboot的相亲网站系统【附源码】
  • 学习笔记079——数据结构之【树】
  • 开源AI智能名片2+1链动模式S2B2C商城小程序在商业流量获取中的应用研究
  • 【网络协议】IPv4 地址分配 - 第一部分
  • Transformer知识梳理
  • JavaScript 随机 数用法
  • 低空经济来袭,载人无人机研发技术详解
  • c++之左值引用 右值引用 万能引用
  • AI在电子制造中的应用:预测质量控制
  • 深入了解 Python 的 venv 虚拟环境
  • 01、Docker学习,第一天:简单入门与安装
  • 鸿蒙Flutter实战:15-Flutter引擎Impeller鸿蒙化、性能优化与未来
  • 数据可视化分析详解
  • leetcode hot100 乘积最大子数组
  • Cursor连接腾讯云Cloud Studio开发环境
  • 如何在 Ubuntu 22.04 上配置 Logrotate 高级教程
  • Go语言的 的数据封装(Data Encapsulation)基础知识