uniapp中uni-popup的具體使用
uni-pop彈出層組件,在應用中彈出一個消息提示窗口、提示框等,可以設置彈出層的位置,是中間、底部、還是頂部。
如下圖效果所示:白色區(qū)域則為彈出的pop層。
一、 創(chuàng)建一個自定義組件:
1.項目中安裝下載uni-pop插件。
2.把pop內(nèi)容單獨寫個組件。這里放到 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('調(diào)用成功!') that.closeInfoPop(); }, fail: (res) => { console.log('調(diào)用失敗!') } }); }, open() { //cityPhonePop是上面布局定義的uni-pop 的ref后面的名稱, this.$refs.cityPhonePop.open()則打開pop展示。 this.$refs.cityPhonePop.open() }, close() { this.$refs.cityPhonePop.close() } }
此組件則定義完成。
二、頁面中使用上面創(chuàng)建的自定義組件:
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。則點擊地市列表,觸發(fā) cityList方法。此方法打開pop。
this.$refs.phonePop.open()
phonePop是上面2布局中cityPhone組件中,ref后面跟的名稱。
this.$refs.phonePop.open() ?//此open方法實際上是調(diào)用的。組件中的open方法,即下圖方法。 open() { ? ? ? ? ? ? ? ? //cityPhonePop是上面布局定義的uni-pop 的ref后面的名稱,即pop名 this.$refs.cityPhonePop.open()則打開pop展示。 ?? ??? ??? ??? ?this.$refs.cityPhonePop.open() ?? ??? ??? ?},
三、pop組件,擴展詳情說明
1.pop位置,可以布局中設置type,同時可以打開pop的時候參數(shù)中傳入位置。
// 通過組件定義的ref調(diào)用uni-popup方法 ,如果傳入?yún)?shù) ,type 屬性將失效 ,僅支持 ['top','left','bottom','right','center'] this.$refs.popup.open('top')
2. 設置主窗口背景色
大多數(shù)場景下,并不需要設置 background-color 屬性,
而也有特例,需要我們主動去設置背景色,例如 type = 'bottom' 的時候 ,在異型屏中遇到了底部安全區(qū)問題(如 iphone 11),因為 uni-popup的主要內(nèi)容避開了安全區(qū)(設置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,只能手動調(diào)用 close 方法。
<uni-popup ref="popup" :mask-click="false"> <text>Popup</text> <button @click="close">關閉</button> </uni-popup>
到此這篇關于uniapp中uni-popup的具體使用的文章就介紹到這了,更多相關uniapp uni-popup內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
js操作CheckBoxList實現(xiàn)全選/反選(在客服端完成)
對于CheckBoxList控件來說,一方面要實現(xiàn)大量數(shù)據(jù)在服務器端的綁定工作,另一方面往往要求實現(xiàn)全選、反選等功能,接下來將介紹js操作CheckBoxList實現(xiàn)全選/反選,感興趣的朋友可以了解下,或許對你有所幫助2013-02-02javascript生成json數(shù)據(jù)簡單示例分享
這篇文章主要介紹了javascript生成json數(shù)據(jù)示例,需要的朋友可以參考下2014-02-02axios如何利用promise無痛刷新token的實現(xiàn)方法
這篇文章主要介紹了axios如何利用promise無痛刷新token的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-08-08JavaScript詳細分析數(shù)據(jù)類型和運算符
這篇文章主要介紹了JavaScript數(shù)據(jù)類型和運算符案例,結(jié)合實例形式分析了JavaScript數(shù)據(jù)類型和運算符特性與相關操作技巧,需要的朋友可以參考下2022-07-07解決JS內(nèi)存泄露之js對象和dom對象互相引用問題
這篇文章主要介紹了解決JS內(nèi)存泄露之js對象和dom對象互相引用問題,需要的朋友可以參考下2017-06-06