来自原文地址
小程序交互仅提供这些API
wx.showToast的效果是这样的,太难看了
现在我们来自己写个toast
一、我们把样式写在app.wxss里,这样每个地方都可以调用到
/*toast start*/
.wxapp-toast-mask{
opacity: 0;
width: 100%;
height: 100%;
overflow: hidden;
position: fixed;
top: 0;
left: 0;
z-index: 888;
}
.wxapp-toast-content-box {
display: flex;
width: 100%;
height: 100%;
justify-content: center;
align-items: center;
position: fixed;
z-index: 999;
}
.wxapp-toast-content {
width: 50%;
padding: 20rpx;
background: rgba(0, 0, 0, 0.7);
border-radius: 20rpx;
}
.wxapp-toast-content-text {
height: 100%;
width: 100%;
color: #fff;
font-size: 28rpx;
text-align: center;
}
/*toast end*/
二、JS也是写在在app.js里:
//自定义Toast
showToast: function(text,o,count){
var _this = o;
count = parseInt(count) ? parseInt(count) : 3000;
_this.setData({
toastText:text,
isShowToast: true,
});
setTimeout(function () {
_this.setData({
isShowToast: false
});
},count);
},
三、在需要调用的wxml文件中合适的地方加上下面代码:(比如index.wxml,注意:有container要放在里面)
<view class="container">
<!--wxapp-toast start-->
<view class="wxapp-toast-content-box" wx:if="{{isShowToast}}">
<view class="wxapp-toast-content">
<view class="wxapp-toast-content-text">
{{toastText}}
</view>
</view>
</view>
<!--wxapp-toast end-->
</view>
(或者说把这段放到footer.wxml里,每个文件用include引用一下)
四、然后在对应的js文件放一条代码:(比如对应的index.js)
app.showToast('我是自定义的Toast',that,2000);
五、效果: