微信小程序自定义toast实现方法详解【附demo源码下载】


Posted in Javascript onNovember 28, 2017

本文实例讲述了微信小程序自定义toast实现方法。分享给大家供大家参考,具体如下:

一、微信官方默认toast

toast最常见了,几乎每个App都有这样的特效,先看下小程序自带的toast效果,立马想死的心都有了~~

微信自带toast的效果:

微信小程序自定义toast实现方法详解【附demo源码下载】

js文件:

wx.showToast({
 title: '成功',
 icon: 'success',
 duration: 2000
})

用法超级简单,但官方小程序有几个问题:

只能显示success、loading两种icon

且icon不可去除

持续时间最大10秒

二、自定义toast

我们最常见的toast是偏底部,而且高度是比较小的那种~~

先看效果:

微信小程序自定义toast实现方法详解【附demo源码下载】

看似简单,实现起来相当不简单,如何实现:

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消失的时候有一个缓慢的动画效果。

附:完整demo实例代码点击此处本站下载

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
js multiple全选与取消全选实现代码
Dec 04 Javascript
WEB前端设计师常用工具集锦
Dec 09 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
Dec 15 Javascript
Jquery 实现checkbox全选方法
Jan 28 Javascript
jQuery ajax的功能实现方法详解
Jan 06 Javascript
vue中子组件调用兄弟组件方法
Jul 06 Javascript
在vue中安装使用vux的教程详解
Sep 16 Javascript
vue实现局部刷新的实现示例
Apr 16 Javascript
小程序云开发实现数据库异步操作同步化
May 18 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
Oct 16 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
May 22 jQuery
基于JS实现快速读取TXT文件
Aug 25 Javascript
vue2.0与bootstrap3实现列表分页效果
Nov 28 #Javascript
Vue.JS项目中5个经典Vuex插件
Nov 28 #Javascript
Vue实现web分页组件详解
Nov 28 #Javascript
基于vue2实现左滑删除功能
Nov 28 #Javascript
JavaScript生成简单等差数列
Nov 28 #Javascript
微信小程序用户自定义模版用法实例分析
Nov 28 #Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
Nov 28 #Javascript
You might like
PHP的PDO大对象(LOBs)
2019/01/27 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
如何在一个页面显示多个百度地图
2013/04/07 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
javascript实现简单查找与替换的方法
2015/07/22 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
使用ES6语法重构React代码详解
2017/05/09 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
node.js操作MongoDB的实例详解
2017/10/11 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
详解JSON.stringify()的5个秘密特性
2020/05/26 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
jQuery实现本地存储
2020/12/22 jQuery
[01:14:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Orenda
2014/05/22 DOTA
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
Python通用函数实现数组计算的方法
2019/06/13 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
2019/10/11 Python
python语言的优势是什么
2020/06/17 Python
Django如何重置migration的几种情景
2021/02/24 Python
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
缅怀革命先烈演讲稿
2014/05/14 职场文书
美食节策划方案
2014/05/26 职场文书
保护水资源的标语
2014/06/17 职场文书
教师职位说明书
2014/07/29 职场文书
红色经典电影观后感
2015/06/18 职场文书
在校学生证明格式
2015/06/24 职场文书
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL
MySQL学习之基础操作总结
2022/03/19 MySQL
openGauss数据库JDBC环境连接配置的详细过程(Eclipse)
2022/06/01 Java/Android
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL