微信小程序自定義toast的實現(xiàn)代碼
今天寫微信小程序突然發(fā)現(xiàn)一個尷尬的問題,請求報錯需要提示,就去小程序API里找,可悲的小程序的toast并不能滿足我的需求,原生提供的方法調(diào)用如下
wx.showToast({ title: '成功', icon: 'succes', duration: 1000, mask:true })
下面是官方API的說明
可以看到支持的圖標(biāo)只有兩種,連基本的warning和error都沒有,最可悲的是title最多只支持7個漢字的長度,完全不能忍啊,現(xiàn)在哪個框架里還沒有個正兒八經(jīng)提示框的組件,想想還是自己寫一個算了,下面是效果圖
下面來說下小程序?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 // 在組件定義時的選項中啟用多slot支持 }, /** * 私有數(shù)據(jù),組件的初始數(shù)據(jù) * 可用于模版渲染 */ data: { // 彈窗顯示控制 animationData: {}, content: '提示內(nèi)容' }, /** * 組件的方法列表 */ methods: { /** * 顯示toast,定義動畫 */ showToast(val) { var animation = wx.createAnimation({ duration: 300, timingFunction: 'ease', }) this.animation = animation animation.opacity(1).step() this.setData({ animationData: animation.export(), content: val }) /** * 延時消失 */ setTimeout(function () { animation.opacity(0).step() this.setData({ animationData: animation.export() }) }.bind(this), 1500) } } })
2、在父級組件中調(diào)用公共組件,以login頁面為例
在login.json中注冊組件
{ "navigationBarTitleText": "登錄注冊", "usingComponents":{ "toast": "../common/toast/toast" } }
login.wxml中調(diào)用組件
<view> <toast id='toast'> </toast> </view>
login.js里點擊登陸錄的時候調(diào)用顯示showDialog方法
onReady: function () { this.toast = this.selectComponent("#toast"); }, listenerLogin: function() { this.dialog.showToast('恭喜你,獲得了toast'); },
總結(jié)
以上所述是小編給大家介紹的微信小程序自定義toast的實現(xiàn)代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- 微信小程序 toast組件詳細(xì)介紹
- 微信小程序開發(fā)之toast等彈框提示使用教程
- 微信小程序開發(fā)之實現(xiàn)自定義Toast彈框
- 微信小程序開發(fā)之toast提示插件使用示例
- 微信小程序?qū)崙?zhàn)之自定義toast(6)
- 微信小程序 toast 詳解及實例代碼
- 微信小程序 Toast自定義實例詳解
- 微信小程序 自定義Toast實例代碼
- 微信小程序自定義toast彈窗效果的實現(xiàn)代碼
- 微信小程序自定義toast實現(xiàn)方法詳解【附demo源碼下載】
- 微信小程序使用component自定義toast彈窗效果
- 微信小程序自定義toast組件的方法詳解【含動畫】
相關(guān)文章
JavaScript復(fù)制內(nèi)容到剪貼板的兩種常用方法
最近一個活動頁面中有一個小需求,用戶點擊或者長按就可以復(fù)制內(nèi)容到剪貼板,記錄一下實現(xiàn)過程和遇到的坑,需要的朋友可以參考下2018-02-02javascript實現(xiàn)動態(tài)加載CSS
最近在做自己的小框架的按需加載模塊,那么就需要做到異步動態(tài)加載css文件。仔細(xì)研究了一番,得到了如下解決方案,分享給大家。2015-01-01JavaScript NaN和Infinity特殊值 [譯]
本文要講的是兩個特殊值,NaN和Infinity,返回這兩個值的操作通常都應(yīng)該返回正常的數(shù)字2012-09-09淺談webpack構(gòu)建工具配置和常用插件總結(jié)
這篇文章主要介紹了淺談webpack構(gòu)建工具配置和常用插件總結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2020-05-05對layer彈出框中icon數(shù)字參數(shù)的說明介紹
今天小編就為大家分享一篇對layer彈出框中icon數(shù)字參數(shù)的說明介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09