uniapp中uni-popup的用法——实例讲解

这篇具有很好参考价值的文章主要介绍了uniapp中uni-popup的用法——实例讲解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

uni-pop弹出层组件,在应用中弹出一个消息提示窗口、提示框等,可以设置弹出层的位置,是中间、底部、还是顶部。

如下图效果所示:白色区域则为弹出的pop层。

uni-popup,uniapp,uni-app

一、 创建一个自定义组件

1.项目中安装下载uni-pop插件。

2.把pop内容单独写个组件。这里放到 components下。 type="bottom"指的pop展示所在屏幕的位置。

<template>
	<view>
		<uni-popup ref="cityPhonePop" type="bottom">
			<view class="popup-content">
				<view class="contentPop columnPop">
					<block v-for="(item,index) in array">
						<view class="columnPop itemPop" @click="callPhone(item)">
							<text>{{item.name}}:{{item.phone}}</text>
						</view>
					</block>
					<view style="background:#f3f3f3;height:10rpx;width: 100%;"></view>
					<view
						style="min-height: 70rpx;display: flex; align-items: center;width: 100%;justify-content: center;"
						@click="closeInfoPop">
						<text>取消</text>
					</view>
				</view>
			</view>
		</uni-popup>
	</view>
</template>

在methods里面定义,用到的js方法:

	methods: {
			closeInfoPop() {
				this.$refs.cityPhonePop.close()
			},
			//拨打电话
			callPhone(item) {
				var that = this;
				uni.makePhoneCall({
					phoneNumber: item.phone,
					// phoneNumber: '025-83582006',
					success: (res) => {
						console.log('调用成功!')
						that.closeInfoPop();
					},
					fail: (res) => {
						console.log('调用失败!')
					}
				});
			},
			open() {
                //cityPhonePop是上面布局定义的uni-pop 的ref后面的名称, this.$refs.cityPhonePop.open()则打开pop展示。
				this.$refs.cityPhonePop.open()
			},
			close() {
				this.$refs.cityPhonePop.close()
			}
		}

此组件则定义完成。

二、页面中使用上面创建的自定义组件:

1.先引入组件,并在components中声明,则可以用cityPhone此组件了。

import cityPhone from "@/components/cityPhone.vue"
    export default {
        components: {
            cityPhone
        },
   

<script>
	import cityPhone from "@/components/cityPhone.vue"
	export default {
		components: {
			cityPhone
		},
    },
	methods: {
        	cityList: function() {
			
				this.$refs.phonePop.open()
				
			}
    }
</scripty>

2.页面中使用此组件
 

<template> 
         <view>
        		<view @click="cityList()" style="padding:0;margin:0;background-color: #FFFFFF;"
					class="member-benefits-1">
					地市列表
				</view>
         <!--城市选择弹窗 -->
                <cityPhone  ref="phonePop"></cityPhone>

        </view>
</template>

3.展示pop。则点击地市列表,触发 cityList方法。此方法打开pop。

this.$refs.phonePop.open()

phonePop是上面2布局中cityPhone组件中,ref后面跟的名称。

this.$refs是固定写法。

this.$refs.phonePop.open()  //此open方法实际上是调用的。组件中的open方法,即下图方法。

open() {
                //cityPhonePop是上面布局定义的uni-pop 的ref后面的名称,即pop名 this.$refs.cityPhonePop.open()则打开pop展示。
				this.$refs.cityPhonePop.open()
			},

三、pop组件,扩展详情说明

1.pop位置,可以布局中设置type,同时可以打开pop的时候参数中传入位置。

 // 通过组件定义的ref调用uni-popup方法 ,如果传入参数 ,type 属性将失效 ,仅支持 ['top','left','bottom','right','center']
 this.$refs.popup.open('top')

2. 设置主窗口背景色

大多数场景下,并不需要设置 background-color 属性,

而也有特例,需要我们主动去设置背景色,例如 type = 'bottom' 的时候 ,在异型屏中遇到了底部安全区问题(如 iphone 11),因为 uni-popup的主要内容避开了安全区(设置safe-area:true),导致底部的颜色我们无法自定义,这时候使用 background-color 就可以解决这个问题。

<button @click="open">打开弹窗</button>
<uni-popup ref="popup" type="bottom" background-color="#fff">底部弹出 Popup</uni-popup>

3.禁用打开动画

在某些场景 ,可能不希望弹层有动画效果 ,只需要将 animation 属性设置为 false 即可以关闭动画。

<button @click="open">打开弹窗</button>
<uni-popup ref="popup" type="center" :animation="false">中间弹出 Popup</uni-popup>

4.禁用点击遮罩关闭

默认情况下,点击遮罩会自动关闭uni-popup,如不想点击关闭,只需将mask-click设置为false,这时候要关闭uni-popup,只能手动调用 close 方法。文章来源地址https://www.toymoban.com/news/detail-531627.html

<uni-popup ref="popup" :mask-click="false">
	<text>Popup</text>
	<button @click="close">关闭</button>
</uni-popup>

到了这里,关于uniapp中uni-popup的用法——实例讲解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序开发uni-popup弹出层触摸穿透问题解决

    问题现象:        目前小程序弹出层穿透有两种问题: 第一种:小程序弹出层不滚动的时候,往上下拉时会连页面一起拉动,这个用户体验性很差的。 解决办法一: 在uni-popup标签中,增加catchtouchmoves属性 ,就ok了~ Tip:在微信开发者工具上无效,只对真机有效的,所以

    2024年04月15日
    浏览(48)
  • uni-app--》uni-app的生命周期讲解

    🏍️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生 🛵个人主页:亦世凡华、 🛺系列专栏:uni-app 🚲座右铭:人生亦可燃烧,亦可腐败,我愿燃烧,耗尽所有光芒。 👀引言         ⚓经过web前端的学习,相信大家对于前端开发有了一定深入的

    2023年04月18日
    浏览(52)
  • 『UniApp』uni-app-打包成App

    大家好,我是 BNTang, 在上一节文章中,我给大家详细的介绍了如何将我开发好的项目打包为微信小程序并且发布到微信小程序商店 趁热打铁,在来一篇文章,给大家详细的介绍如何将项目打包成APP。 打包 App 也是一样的,首先需要配置关于 App 应用的基础信息,打开 manifest

    2024年02月04日
    浏览(108)
  • uni-app中Navigator组件的用法详解

    uni-app中Navigator组件的用法详解 在移动应用开发中,页面跳转是一项基础而重要的功能。在uni-app中,我们可以使用Navigator组件来实现页面间的跳转。本文将详细介绍uni-app中Navigator组件的用法,包括基本用法、传参方式以及注意事项。 1.1 navigator API 介绍 navigator用于页面跳转。

    2024年02月16日
    浏览(36)
  • 【UniApp】-uni-app-网络请求

    经过上个章节的介绍,大家可以了解到 uni-app-pinia存储数据的基本使用方法 那本章节来给大家介绍一下 uni-app-网络请求 的基本使用方法 首先我们打开官方文档,我先带着大家看一下官方文档的介绍:https://uniapp.dcloud.net.cn/api/request/request.html 从官方文档中我们可以看到,可以

    2024年02月04日
    浏览(53)
  • uni-app:官方文档中的canvas实例剖析

    canvas | uni-app官网 (dcloud.net.cn)

    2024年02月07日
    浏览(48)
  • 【UniApp】-uni-app-打包成网页

    经过上一篇文章的介绍,已经将这个计算器的计算功能实现了,接下来就是我们项目当中的一个发包上线阶段,我模拟一下,目的就是为了给大家介绍一下,uni-app是如何打包成网页的。 除了可以打包成网页,uni-app还可以打包成小程序、App、H5、快应用等等,后面在单独开文

    2024年02月04日
    浏览(72)
  • uni-app Android studio 本地打包 【图文讲解】

    需要修改文件列表 appsrcmainresvaluesstrings.xml 修改app名称 appsrcmainresvaluesAndroidManifest.xml 修改 包名 以及 uni-app 开发者后台生成的 离线打包可key simpleDemo 目录下的 准备安卓开发环境 (这里忽略,之前有文章讲解) 安卓开发环境 https://nativesupport.dcloud.net.cn/AppDocs/download/an

    2024年02月03日
    浏览(74)
  • Uniapp uni-app学习与快速上手

    个人开源uni-app开源项目地址:准备中 在线展示项目地址:准备中 什么是uni-app uni,读 you ni ,是统一的意思。 Dcloud即数字天堂(北京)网络技术有限公司是W3C成员及HTML5中国产业联盟发起单位,致力于推进HTML5发展构建,HTML5生态。 2012年,DCloud开始研发小程序技术,优化webvie

    2024年02月09日
    浏览(64)
  • uni-app的tabBar用法(自动、点击刷新页面,loading加载框)

    一.先在package.json中配置tabBar(前置条件) tabBar所跳转的页面应事先在page中创建好!如下配置后app下方会有可点击的tabBar按钮,在list中设置按钮的个数。  图1         tabBar的 list 属性         text :tabBar按钮的名称         pagePath :tabBar按钮的page页面路径         iconPa

    2024年02月08日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包