欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

微信小程序开发之toast等弹框提示使用教程

程序员文章站 2022-04-10 10:14:14
介绍 微信小程序中toast消息提示框只有两种显示的效果,就是成功和加载,使用wx.showtoast(object) 。 看下有关参数说明: 代...

介绍

微信小程序中toast消息提示框只有两种显示的效果,就是成功和加载,使用wx.showtoast(object)

看下有关参数说明:

微信小程序开发之toast等弹框提示使用教程

代码很简单:

 wx.showtoast({
 title: '成功',
 icon: 'succes',
 duration: 1000,
 mask:true
 })

微信小程序开发之toast等弹框提示使用教程

mask属性好像并没有起作用。有一点值得注意的是提示的延迟时间是有限制的,最大10000毫秒。

还有一个函数是wx.hidetoast() ,这个是隐藏toast,主要用于显示加载提示的时候用到,如:

wx.showtoast({
 title: '加载中',
 icon: 'loading',
 duration: 10000
})

settimeout(function(){
 wx.hidetoast()
},2000)

本来加载时间是10000毫秒的,然后2000毫秒的时候就隐藏了,这个具体情况而定了哈。

第二个弹窗是模态弹窗:wx.showmodal(object)

参数如下:

微信小程序开发之toast等弹框提示使用教程

这个跟我们android里面的dialog相似,效果如下:

微信小程序开发之toast等弹框提示使用教程

代码如下:

 wx.showmodal({
 title: '提示',
 content: '模态弹窗',
 success: function (res) {
 if (res.confirm) {
 console.log('用户点击确定')
 }else{
 console.log('用户点击取消')
 }

 }
 })

最后一个是操作菜单:wx.showactionsheet(object)

这个函数我们在用过,这里说一下也无妨。

先看一下参数介绍:

微信小程序开发之toast等弹框提示使用教程

success有一个返回参数:

微信小程序开发之toast等弹框提示使用教程

这里直接贴官方实例了:

wx.showactionsheet({
 itemlist: ['a', 'b', 'c'],
 success: function(res) {
 console.log(res.tapindex)
 },
 fail: function(res) {
 console.log(res.errmsg)
 }
})

效果图:

微信小程序开发之toast等弹框提示使用教程

这里有个小问题,弹出showactionsheet之后,点击取消或者阴影处,会执行完fail之后,继续执行success函数,当然了,这里肯定有办法解决的,success其实有两个返回参数,除了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
 })
 }
}
})

就是这么简单,赶紧动起来试试吧。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。