uniapp自定义全局弹窗,保姆级教程

7 篇文章 0 订阅
5 篇文章 0 订阅
本文介绍了如何在H5应用中创建一个具有透明背景和遮罩效果的弹出页面,包括配置pages.json文件、设置页面样式、布局以及使用uni.navigateTo打开弹窗,同时强调了`@tap.stop.prevent`用于阻止事件冒泡的重要性。
摘要由CSDN通过智能技术生成

一、创建页面,并配置pages.json文件(仅app端可以看见上一个页面内容)
{
			"path" : "pages/blogPopup/blogPopup",
			"style" : 
			{
				"navigationBarTitleText" : "",
				"enablePullDownRefresh" : false,
				"navigationStyle": "custom",
				"app-plus": {
					"animationType": "fade-in", // 设置fade-in淡入动画,为最合理的动画类型
					"background": "transparent", // 背景透明
					"backgroundColor": "transparent", // 背景透明
					"webviewBGTransparent": true,
					"mask": "none",
					"popGesture": "none", // 关闭IOS屏幕左边滑动关闭当前页面的功能
					"bounce": "none" // 将回弹属性关掉
				}
			}
		}
二、"background": "transparent",已经设置了页面背景为透明,再设置页面一下背景遮罩效果

在此注意 切勿将style 添加scoped  切勿!!  切勿 !!  切勿!! 不然手机端效果显示会失效

page {
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.4);
	}
三、开始页面布局,图片按自己的来就可以了
<template>
	<view class="informantion_mask" @tap="closeWindow">
		<view class="informantion_content" @tap.stop.prevent>
			<view class="mask-header">
				<image src="../../static/images/clear.png" mode="aspectFit" @click="closeWindow"></image>
			</view>
			<view class="informantion-title">
				<p class="informantion-title-p">开启消息通知</p>
				<span class="informantion-title-span">不要错过你的特别关心的重要通知,每天都要有干货推荐</span>
			</view>
			<view class="informantion-btn">
				<button type="primary">去开启</button>
			</view>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				
			}
		},
		methods: {
			//点击mask消失,由于是页面实际相当于返回
			closeWindow() {
				uni.navigateBack({
					delta: 1
				})
			}
		}
	}
</script>

<style lang="scss">
	page {
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.4);
	}

	.informantion_mask {
		width: 100%;
		height: 100%;
		display: flex;
		flex-direction: row;
		justify-content: center;
		align-items: center;
	}

	.informantion_content {
		width: 600rpx;
		height: 820rpx;
		overflow: hidden;
		border-radius: 10rpx;
		background-color: white;
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		padding-bottom: 20rpx;
	}

	.mask-header {
		height: 400rpx;
		position: relative;
		background-image: url('../../static/images/bj.png');
		background-repeat: no-repeat;
		background-size: cover;
		image {
			width: 40rpx;
			height: 40rpx;
			position: absolute;
			top: 20rpx;
			right: 20rpx;
		}
	}
	
	.informantion-title {
		text-align: center;
		padding: 0 40rpx;
		p {
			font-size: 35rpx;
			font-weight: bold;
			line-height: 80rpx;
		}
		span {
			color: #6C6C6C;
		}
	}

	.informantion-btn {
		height: 93rpx;
		width: 80%;
		margin: 0 auto;
	}
</style>
四、 一定要设置   @tap.stop.prevent   阻止事件冒泡
五、打开弹窗
...
uni.navigateTo({
	url: '/pages/blogPopup/blogPopup'
})
...

如有不足,望大家多多指点! 谢谢!

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值