微信小程序自定义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 相关文章推荐
添加到收藏夹代码(兼容几乎所有的浏览器)
Jan 09 Javascript
javascript 子窗体父窗体相互传值方法
May 31 Javascript
javascript下利用arguments实现string.format函数
Aug 24 Javascript
使用 stylelint检查CSS_StyleLint
Apr 28 Javascript
JQuery在循环中绑定事件的问题详解
Jun 02 Javascript
AngularJS中transclude用法详解
Nov 03 Javascript
easyui导出excel无法弹出下载框的快速解决方法
Nov 10 Javascript
如何实现json数据可视化详解
Nov 24 Javascript
nginx配置React静态页面的方法教程
Nov 03 Javascript
在vue中使用echarts图表实例代码详解
Oct 22 Javascript
如何使用pm2快速将项目部署到远程服务器
Mar 12 Javascript
jQuery实现评论模块
Aug 19 jQuery
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计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
PHP中的流(streams)浅析
2015/07/02 PHP
Yii框架批量插入数据扩展类的简单实现方法
2017/05/23 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
(function(){})()的用法与优点
2007/03/11 Javascript
pjblog中的UBBCode.js
2007/04/25 Javascript
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
2017/03/21 jQuery
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
基于js中document.cookie全面解析
2017/09/14 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
angular4应用中输入的最小值和最大值的方法
2019/05/17 Javascript
[02:48]DOTA2英雄基础教程 暗夜魔王
2013/12/12 DOTA
[02:26]2016国际邀请赛8月3日开战 中国军团出征西雅图
2016/08/02 DOTA
[01:13:59]LGD vs Mineski Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
Python手机号码归属地查询代码
2016/05/04 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
Python中的字符串切片(截取字符串)的详解
2019/05/15 Python
Tensorflow累加的实现案例
2020/02/05 Python
Python eval函数原理及用法解析
2020/11/14 Python
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
党校培训思想汇报
2013/12/30 职场文书
直接有效的自我评价
2014/01/11 职场文书
小学教师寄语大全
2014/04/03 职场文书
小学生竞选班干部演讲稿(5篇)
2014/09/12 职场文书
学校领导干部民主生活会整改方案
2014/09/29 职场文书
2014年超市员工工作总结
2014/11/18 职场文书
合作意向书范本
2019/04/17 职场文书
Vue+Flask实现图片传输功能
2022/04/01 Vue.js
Tomcat 与 maven 的安装与使用教程
2022/06/16 Servers