微信小程序自定義底部、頂部、中間、左邊、右邊彈窗
簡(jiǎn)單的微信小程序彈窗功能,具體實(shí)現(xiàn)過(guò)程,請(qǐng)瀏覽代碼。
頂部彈出窗圖例:
中間彈出窗圖例:
底部彈出窗圖例:
左邊彈出窗圖例:
右邊彈出窗圖例:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-504941.html
- wxml代碼
<button type="primary" bindtap="openPopup" data-index="0">打開(kāi)頂部彈窗</button>
<button type="primary" bindtap="openPopup" data-index="1">打開(kāi)中間彈窗</button>
<button type="primary" bindtap="openPopup" data-index="2">打開(kāi)底部彈窗</button>
<button type="primary" bindtap="openPopup" data-index="3">打開(kāi)左邊彈窗</button>
<button type="primary" bindtap="openPopup" data-index="4">打開(kāi)右邊彈窗</button>
<!-- 頂部彈窗 -->
<view class="popup-box" wx:if="{{showIndex=='0'}}" bindtap="closePopup"></view>
<view class="info-top" wx:if="{{showIndex=='0'}}">
<view class="row-info">
<view>
<text class="line left-line"></text>
<text>《登高》</text>
<text class="line right-line"></text>
</view>
<view class="row-author">杜甫 〔唐代〕</view>
<view>風(fēng)急天高猿嘯哀,渚清沙白鳥(niǎo)飛回。</view>
<view>無(wú)邊落木蕭蕭下,不盡長(zhǎng)江滾滾來(lái)。</view>
<view>萬(wàn)里悲秋常作客,百年多病獨(dú)登臺(tái)。</view>
<view>艱難苦恨繁霜鬢,潦倒新停濁酒杯。</view>
</view>
<view class="row-btn">
<view class="left-btn" bindtap="closePopup">取消</view>
<view class="right-btn">確認(rèn)</view>
</view>
</view>
<!-- 中間彈窗 -->
<view class="popup-box" wx:if="{{showIndex=='1'}}" bindtap="closePopup"></view>
<view class="info-center" style="top:{{height*0.3}}px;height:{{height*0.4}}px;"
wx:if="{{showIndex=='1'}}">
<view>
<view class="row-info">
<view>
<text class="line left-line"></text>
<text>《登高》</text>
<text class="line right-line"></text>
</view>
<view class="row-author">杜甫 〔唐代〕</view>
<view>風(fēng)急天高猿嘯哀,渚清沙白鳥(niǎo)飛回。</view>
<view>無(wú)邊落木蕭蕭下,不盡長(zhǎng)江滾滾來(lái)。</view>
<view>萬(wàn)里悲秋常作客,百年多病獨(dú)登臺(tái)。</view>
<view>艱難苦恨繁霜鬢,潦倒新停濁酒杯。</view>
</view>
<view class="row-btn">
<view class="left-btn" bindtap="closePopup">取消</view>
<view class="right-btn">確認(rèn)</view>
</view>
</view>
</view>
<!-- 底部彈窗 -->
<view class="popup-box" wx:if="{{showIndex=='2'}}" bindtap="closePopup"></view>
<view class="info-bottom" wx:if="{{showIndex=='2'}}">
<view class="row-info">
<view>
<text class="line left-line"></text>
<text>《登高》</text>
<text class="line right-line"></text>
</view>
<view class="row-author">杜甫 〔唐代〕</view>
<view>風(fēng)急天高猿嘯哀,渚清沙白鳥(niǎo)飛回。</view>
<view>無(wú)邊落木蕭蕭下,不盡長(zhǎng)江滾滾來(lái)。</view>
<view>萬(wàn)里悲秋常作客,百年多病獨(dú)登臺(tái)。</view>
<view>艱難苦恨繁霜鬢,潦倒新停濁酒杯。</view>
</view>
<view class="row-btn">
<view class="left-btn" bindtap="closePopup">取消</view>
<view class="right-btn">確認(rèn)</view>
</view>
</view>
<!-- 左邊彈窗 -->
<view class="popup-box" wx:if="{{showIndex=='3'}}" bindtap="closePopup"></view>
<view class="info-left" wx:if="{{showIndex=='3'}}">
<view class="row-info">
<view>
<text class="line left-line"></text>
<text>《登高》</text>
<text class="line right-line"></text>
</view>
<view class="row-author">杜甫 〔唐代〕</view>
<view>風(fēng)急天高猿嘯哀,</view>
<view>渚清沙白鳥(niǎo)飛回。</view>
<view>無(wú)邊落木蕭蕭下,</view>
<view>不盡長(zhǎng)江滾滾來(lái)。</view>
<view>萬(wàn)里悲秋常作客,</view>
<view>百年多病獨(dú)登臺(tái)。</view>
<view>艱難苦恨繁霜鬢,</view>
<view>潦倒新停濁酒杯。</view>
</view>
<view class="row-btn fixed">
<view class="left-btn" bindtap="closePopup">取消</view>
<view class="right-btn">確認(rèn)</view>
</view>
</view>
<!-- 右邊彈窗 -->
<view class="popup-box" wx:if="{{showIndex=='4'}}" bindtap="closePopup"></view>
<view class="info-right" wx:if="{{showIndex=='4'}}">
<view class="row-info">
<view>
<text class="line left-line"></text>
<text>《登高》</text>
<text class="line right-line"></text>
</view>
<view class="row-author">杜甫 〔唐代〕</view>
<view>風(fēng)急天高猿嘯哀,</view>
<view>渚清沙白鳥(niǎo)飛回。</view>
<view>無(wú)邊落木蕭蕭下,</view>
<view>不盡長(zhǎng)江滾滾來(lái)。</view>
<view>萬(wàn)里悲秋常作客,</view>
<view>百年多病獨(dú)登臺(tái)。</view>
<view>艱難苦恨繁霜鬢,</view>
<view>潦倒新停濁酒杯。</view>
</view>
<view class="row-btn fixed">
<view class="left-btn" bindtap="closePopup">取消</view>
<view class="right-btn">確認(rèn)</view>
</view>
</view>
- wxss代碼
/* 蒙層 */
.popup-box{
position: absolute;
z-index: 99;
top: 0;
background-color: rgba(0, 0, 0, 0.5);
width: 100%;
height: 100%;
}
/* 上 */
.info-top{
position: fixed;
z-index: 999;
width: 100%;
top: 0;
background-color: white;
border-bottom-left-radius: 5rpx;
border-bottom-right-radius: 5rpx;
}
/* 中 */
.info-center{
position: fixed;
z-index: 999;
background-color: white;
display: flex;
align-items: center;
justify-content: center;
border-radius: 10rpx;
width: 90%;
margin-left: 5%;
margin-right: 5%;
}
/* 下 */
.info-bottom{
position: fixed;
z-index: 999;
width: 100%;
bottom: 0;
background-color: white;
border-top-left-radius: 10rpx;
border-top-right-radius: 10rpx;
}
/* 左 */
.info-left{
position: fixed;
z-index: 999;
width: 50%;
height: 100%;
top: 0;
background-color: white;
border-top-right-radius: 10rpx;
border-bottom-right-radius: 10rpx;
}
/* 右 */
.info-right{
position: fixed;
z-index: 999;
width: 50%;
height: 100%;
right: 0;
top: 0;
background-color: white;
border-top-left-radius: 10rpx;
border-bottom-left-radius: 10rpx;
}
/* 自定義內(nèi)容(根據(jù)自己需求更改,可刪除) */
button{
margin: 15rpx 0;
}
.row-info{
display: flex;
flex-direction: column;
align-items: center;
margin: 15rpx;
font-size: 32rpx;
}
.row-info view{
padding: 10rpx 0;
}
.row-info view:first-child{
display: flex;
flex-direction: row;
align-items: center;
}
.line{
width: 100rpx;
height: 1rpx;
}
.left-line{
background-image: linear-gradient(to left,orange,white);
}
.right-line{
background-image: linear-gradient(to right,orange,white);
}
.row-author{
font-size: 24rpx;
color: gray;
}
.row-btn{
display: flex;
flex-direction: row;
align-items: center;
border-top: 1rpx dashed #f1f1f1;
}
.row-btn view{
flex: 1;
text-align: center;
margin: 20rpx 10%;
padding: 12rpx 0;
font-size: 32rpx;
border-radius: 10rpx;
}
.left-btn{
background-color: #f1f1f1;
color: #33ccff;
}
.right-btn{
background-color: #33ccff;
color: white;
}
.fixed{
position: fixed;
bottom: 0;
width: 50%;
}
- js代碼
Page({
/**
* 頁(yè)面的初始數(shù)據(jù)
*/
data: {
showIndex:null,//打開(kāi)彈窗的對(duì)應(yīng)下標(biāo)
height:'',//屏幕高度
},
// 打開(kāi)彈窗
openPopup(e){
var index = e.currentTarget.dataset.index;
this.setData({
showIndex:index
})
},
//關(guān)閉彈窗
closePopup(){
this.setData({
showIndex:null
})
},
/**
* 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面初次渲染完成
*/
onReady() {
var that = this;
// 動(dòng)態(tài)獲取屏幕高度
wx.getSystemInfo({
success: (result) => {
that.setData({
height: result.windowHeight
});
},
})
},
})
代碼簡(jiǎn)潔,類(lèi)型齊全。本人才疏學(xué)淺,代碼僅供參考,如有問(wèn)題,請(qǐng)多多指教,酸Q。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-504941.html
到了這里,關(guān)于微信小程序彈窗的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!