微信小程序開發(fā)之toast等彈框提示使用教程
介紹
微信小程序中toast消息提示框只有兩種顯示的效果,就是成功和加載,使用wx.showToast(OBJECT) 。
看下有關參數(shù)說明:

代碼很簡單:
wx.showToast({
title: '成功',
icon: 'succes',
duration: 1000,
mask:true
})

mask屬性好像并沒有起作用。有一點值得注意的是提示的延遲時間是有限制的,最大10000毫秒。
還有一個函數(shù)是wx.hideToast() ,這個是隱藏toast,主要用于顯示加載提示的時候用到,如:
wx.showToast({
title: '加載中',
icon: 'loading',
duration: 10000
})
setTimeout(function(){
wx.hideToast()
},2000)
本來加載時間是10000毫秒的,然后2000毫秒的時候就隱藏了,這個具體情況而定了哈。
第二個彈窗是模態(tài)彈窗:wx.showModal(OBJECT)
參數(shù)如下:

這個跟我們Android里面的Dialog相似,效果如下:

代碼如下:
wx.showModal({
title: '提示',
content: '模態(tài)彈窗',
success: function (res) {
if (res.confirm) {
console.log('用戶點擊確定')
}else{
console.log('用戶點擊取消')
}
}
})
最后一個是操作菜單:wx.showActionSheet(OBJECT)
這個函數(shù)我們在上一篇文章用過,這里說一下也無妨。
先看一下參數(shù)介紹:

success有一個返回參數(shù):

這里直接貼官方實例了:
wx.showActionSheet({
itemList: ['A', 'B', 'C'],
success: function(res) {
console.log(res.tapIndex)
},
fail: function(res) {
console.log(res.errMsg)
}
})
效果圖:

這里有個小問題,彈出showActionSheet之后,點擊取消或者陰影處,會執(zhí)行完fail之后,繼續(xù)執(zhí)行success函數(shù),當然了,這里肯定有辦法解決的,success其實有兩個返回參數(shù),除了tapIndex之外,還有一個就是cancle,cancle就是是否取消,返回一個boolean,在彈出這個框之后在success里面做個判斷,if (!res.cancel) {做不取消的操作就行了}。當然了,你也可以自己來定義。
下面看個自定義彈窗的:
wxml:
<view class="commodity_screen" bindtap="hideModal" wx:if="{{showModalStatus}}"></view>
<view animation="{{animationData}}" class="commodity_attr_box" wx:if="{{showModalStatus}}" bindtap="navigate">
<text class="title">{{title}}</text>
</view>
css:
.commodity_screen {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background: #000;
opacity: 0.2;
overflow: hidden;
z-index: 1000;
color: #fff;
}
.commodity_attr_box {
width: 100%;
overflow: hidden;
position: fixed;
bottom: 0;
left: 0;
z-index: 2000;
height: 60px;
background: #fff;
}
.title {
height: 100%;
width: 100%;
position: fixed;
text-align: center;
margin-top: 20px;
margin-bottom: 20px;
}
js:
showView() {
// 顯示遮罩層
var animation = wx.createAnimation({
duration: 200,
timingFunction: "linear",
delay: 0
})
this.animation = animation
animation.translateY(300).step()
this.setData({
animationData: animation.export(),
showModalStatus: true
})
setTimeout(function () {
animation.translateY(0).step()
this.setData({
animationData: animation.export()
})
}.bind(this), 200)
},
hideModal: function () {
this.hideView();
},
hideView() {
// 隱藏遮罩層
var animation = wx.createAnimation({
duration: 200,
timingFunction: "linear",
delay: 0
})
this.animation = animation
animation.translateY(300).step()
this.setData({
animationData: animation.export(),
})
setTimeout(function () {
animation.translateY(0).step()
this.setData({
animationData: animation.export(),
showModalStatus: false
})
}.bind(this), 200)
}
啟用動畫來做,效果杠杠的,自己動手來試試。
也可以使用action-sheet來布局,如下:
<action-sheet hidden="{{actionSheetHidden}}" bindchange="actionSheetChange">
<block wx:for-items="{{actionSheetItems}}">
<action-sheet-item class="item" bindtap="bind{{item}}">{{item}}</action-sheet-item>
</block>
<action-sheet-cancel class="cancel">取消</action-sheet-cancel>
</action-sheet>
Page({
data: {
actionSheetHidden: true,
actionSheetItems: items
},
actionSheetTap: function(e) {
this.setData({
actionSheetHidden: !this.data.actionSheetHidden
})
},
actionSheetChange: function(e) {
this.setData({
actionSheetHidden: !this.data.actionSheetHidden
})
}
}
})
就是這么簡單,趕緊動起來試試吧。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

