微信小程式之『自定義toast』

小小小發表於2016-12-12
轉載:請寫明掘金原文連結及作者名 '小小小'
一個潛心研究小程式QQ群:139128168 ← 點選加群

一、微信官方預設toast

toast最常見了,幾乎每個App都有這樣的特效,先看下小程式自帶的toast效果,立馬想死的心都有了~~

微信自帶toast的效果:

微信小程式之『自定義toast』
小程式預設toast效果

js檔案:

wx.showToast({
    title: '成功',
    icon: 'success',
    duration: 2000
})複製程式碼

用法超級簡單,但官方小程式有幾個問題:

  • 只能顯示success、loading兩種icon
  • 且icon不可去除
  • 持續時間最大10秒

二、自定義toast

我們最常見的toast是偏底部,而且高度是比較小的那種~~

先看效果:

微信小程式之『自定義toast』
自定義toast

看似簡單,實現起來相當不簡單,如何實現:

1)建立一個公共的toast的template模板檔案,因為每個頁面都需要用到toast

<!-- wetoast.wxml -->
<template name="wetoast">
    <view class="wetoast {{reveal ? 'wetoast_show' : ''}}">
        <view class="wetoast__mask"></view>
        <view class="wetoast__bd {{position}}" animation="{{animationData}}">
            <block wx:if="{{title}}">
                <view class="wetoast__bd__title {{titleClassName || ''}}">{{title}}</view>
            </block>
        </view>
    </view>
</template>複製程式碼

2)JS主要有以下用法

核心程式碼:
let pages = getCurrentPages();
let curPage = pages[pages.length - 1];複製程式碼

這段程式碼是核心,getCurrentPages().length - 1 表示可以獲得當前頁面的page,只有獲得了page,才能通過page.setData把當前頁面的資料繫結到toast上面。

核心程式碼:
let animation = wx.createAnimation();
animation.opacity(1).step();複製程式碼

這段程式碼是toast消失的時候有一個緩慢的動畫效果。


原始碼下載

『咻咻咻咻duang,是不是又忘了關注~~』

相關文章