溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何在微信小程序中自定義toast

發(fā)布時(shí)間:2021-06-04 17:29:49 來(lái)源:億速云 閱讀:460 作者:Leah 欄目:web開發(fā)

如何在微信小程序中自定義toast?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

1、新建toast組件

在toast.json里修改如下,設(shè)置為組件

{
 "component": true
}

toast.wxml

<view class='wx-toast-box' animation="{{animationData}}">
 <view class='wx-toast-content'>
  <view class='wx-toast-toast'>{{ content }}</view>
 </view>
</view>

定義樣式,toast.wxss,這里使用flex布局,代碼很簡(jiǎn)單,也沒什么好說(shuō)的,直接貼上

.wx-toast-box{
 display: flex;
 width: 100%;
 justify-content: center;
 position: fixed;
 z-index: 999;
 bottom:80rpx;
 opacity: 0;
}
.wx-toast-content{
 max-width: 80%;
 border-radius:30rpx;
 padding: 30rpx;
 background: rgba(0, 0, 0, 0.6);
}
.wx-toast-toast{
 height: 100%;
 width: 100%;
 color: #fff;
 font-size: 28rpx;
 text-align: center;
}

toast.js

Component({
 options: {
  multipleSlots: true // 在組件定義時(shí)的選項(xiàng)中啟用多slot支持 
 },
 /** 
  * 私有數(shù)據(jù),組件的初始數(shù)據(jù) 
  * 可用于模版渲染 
  */
 data: { // 彈窗顯示控制 
  animationData: {},
  content: '提示內(nèi)容'
 },
 /**
  * 組件的方法列表 
  */
 methods: {
  /** 
   * 顯示toast,定義動(dòng)畫
   */
  showToast(val) {
   var animation = wx.createAnimation({
    duration: 300,
    timingFunction: 'ease',
   })
   this.animation = animation
   animation.opacity(1).step()
   this.setData({
    animationData: animation.export(),
    content: val
   })
   /**
    * 延時(shí)消失
    */
   setTimeout(function () {
    animation.opacity(0).step()
    this.setData({
     animationData: animation.export()
    })
   }.bind(this), 1500)
  }
 }
})

2、在父級(jí)組件中調(diào)用公共組件,以login頁(yè)面為例

在login.json中注冊(cè)組件

{
 "navigationBarTitleText": "登錄注冊(cè)",
 "usingComponents":{
  "toast": "../common/toast/toast"
 }
}

login.wxml中調(diào)用組件

<view>
 <toast id='toast'>
 </toast>
</view>

login.js里點(diǎn)擊登陸錄的時(shí)候調(diào)用顯示showDialog方法

onReady: function () {
  this.toast = this.selectComponent("#toast");
},
listenerLogin: function() {
  this.dialog.showToast('恭喜你,獲得了toast');
},

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI