微信小程序自定义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 event使用方法详解
Apr 28 Javascript
玩转方法:call和apply
May 08 Javascript
javaScript的函数对象的声明详解
Feb 06 Javascript
JS实现设置ff与ie元素绝对位置的方法
Mar 08 Javascript
jquery checkbox的相关操作总结
Oct 17 Javascript
Vue过滤器的用法和自定义过滤器使用
Feb 08 Javascript
详解Javascript中DOM的范围
Feb 13 Javascript
把vue-router和express项目部署到服务器的方法
Feb 21 Javascript
完美解决iview 的select下拉框选项错位的问题
Mar 02 Javascript
react 父子组件之间通讯props
Sep 08 Javascript
vue如何进行动画的封装
Sep 26 Javascript
微信小程序 textarea 层级过高问题简单解决方案
Oct 14 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
Access数据库导入Mysql的方法之一
2006/10/09 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
2013/06/20 PHP
php单一接口的实现方法
2015/06/20 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
2013/09/22 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
2013/11/08 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
JavaScript DOM基础
2015/04/13 Javascript
jQuery中$.extend()用法实例
2015/06/24 Javascript
JavaScript判断表单为空及获取焦点的方法
2016/02/12 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
2016/03/21 Javascript
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
js 用于检测类数组对象的函数方法
2017/05/02 Javascript
AngularJS中filter的使用实例详解
2017/08/25 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
vue 1.x 交互实现仿百度下拉列表示例
2017/10/21 Javascript
解决vue数组中对象属性变化页面不渲染问题
2018/08/09 Javascript
微信小程序分享海报生成的实现方法
2018/12/10 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
Python 时间处理datetime实例
2008/09/06 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
PyQt5每天必学之拖放事件
2020/08/27 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
python导入模块交叉引用的方法
2019/01/19 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
Python并发concurrent.futures和asyncio实例
2020/05/04 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
英语自我评价范文
2014/01/24 职场文书
战略性融资合作协议书范本
2014/10/17 职场文书
护士年终个人总结
2015/02/13 职场文书
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技