国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

微信小程序自定義toast的實(shí)現(xiàn)代碼

2019-11-19 12:30:24
字體:
供稿:網(wǎng)友

今天寫微信小程序突然發(fā)現(xiàn)一個(gè)尷尬的問題,請求報(bào)錯(cuò)需要提示,就去小程序API里找,可悲的小程序的toast并不能滿足我的需求,原生提供的方法調(diào)用如下

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

下面是官方API的說明

可以看到支持的圖標(biāo)只有兩種,連基本的warning和error都沒有,最可悲的是title最多只支持7個(gè)漢字的長度,完全不能忍啊,現(xiàn)在哪個(gè)框架里還沒有個(gè)正兒八經(jīng)提示框的組件,想想還是自己寫一個(gè)算了,下面是效果圖

下面來說下小程序?qū)崿F(xiàn)自定義公共組件的方法,以自定義toast為例

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布局,代碼很簡單,也沒什么好說的,直接貼上

.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頁面為例

在login.json中注冊組件

{ "navigationBarTitleText": "登錄注冊", "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');},

總結(jié)

以上所述是小編給大家介紹的微信小程序自定義toast的實(shí)現(xiàn)代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 淮滨县| 西安市| 丽水市| 孟连| 穆棱市| 南和县| 华亭县| 富源县| 蒙山县| 竹山县| 榆林市| 日喀则市| 尉氏县| 华阴市| 深水埗区| 大厂| 济南市| 磐石市| 香港 | 鹰潭市| 双峰县| 贵州省| 菏泽市| 大名县| 胶南市| 梁平县| 大宁县| 南昌县| 巴青县| 固安县| 伊春市| 隆化县| 阜宁县| 合肥市| 霞浦县| 阿克陶县| 东平县| 和平县| 平江县| 措勤县| 黄石市|