百度小程序自定义通用toast组件


Posted in Javascript onJuly 17, 2019

需求

手百小程序的toast仅支持在页中展示,不能自定义位置、字体大小、在单个文本中增加icon等需求;因此自定义一个全局可通用的Toast。

效果预览

百度小程序自定义通用toast组件

百度小程序自定义通用toast组件

百度小程序自定义通用toast组件

百度小程序自定义通用toast组件

如何使用

代码目录位于 /widget/toast 下,包含3个文件

  • toast.js 脚本代码
  • toast.css 样式文件,可以根据自己需求定制
  • toast.swan 模板结构,可以根据自己需求定制

使用步骤一:

将/widget/toast的三个文件,放在与page同名的widget文件夹中,如果项目没有widget文件夹,就新建一个。

百度小程序自定义通用toast组件

使用步骤二:

在项目的整个 app.js 中引入,一次引入,所有page均可以使用:

// app.js
import { BdToast } from './widget/toast/toast.js';

App({
 BdToast, // 挂载
 onLaunch(options) {
  // do something when launch
 },
 onShow(options) {
  // do something when show
 },
 onHide() {
  // do something when hide
 }
});

使用步骤三:

在项目的app.css中引入 toast.css:

// app.css
@import "./widget/toast/toast.css";

使用步骤四:

在需要的page页面,将模板引入:

// pages/index/index.swan
<!-- toast使用 -->
<import src="/widget/toast/toast.swan"/>
<template is="bdtoast" data="{{bdtoast}}"/>

 

使用步骤五

在具体的页面进行初始化调用:

/ 初始化
new app.BdToast();

// 具体调用:
Page({
 data: {},
 onLoad() {
  new app.BdToast();
 },
 clickShowToast(e) {
  switch (+e.target.dataset.id) {
   case 1:
    this.bdtoast.toast({
     title: '仅显示标题'
    });
    break;
   case 2:
    this.bdtoast.toast({
     title: '设置图片+文字',
     iconSrc: '../../images/loading.gif'
    });
    break;
   case 3:
    this.bdtoast.toast({
     title: '设置时间',
     duration: 1000
    });
    break;
   case 4:
    this.bdtoast.toast({
     title: '设置标题',
     subTitle: '副标题'
    });
    break;
  }
 }
});

参数说明:

参数 类型 必填 说明
title string 标题
iconSrc string icon地址,提供icon的url,icon大小为32px * 32px
subTitle string 副标题,同时需要title存在才会显示,否则不显示副标题
duration number 持续时间,不填默认1500毫秒
success function 执行成功的回调
fail function 执行失败的回调
complete function 完成的回调,不管有没有执行成功

最后说明

例子Demo中也有关于toast的点击tap事件的绑定,因为此功能不是很常用,有兴趣的可以clone下来自行研究。另外,如果有样式结构或者样式不符合需求的话,可以自己在 widget/toast的源码中进行更新,直到符合自己的需求~

欢迎star、issue和pull request~

BdToast百度小程序自定义通用组件-github地址

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
Aug 04 Javascript
浅谈javascript的Array.prototype.slice.call
Aug 31 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
Dec 02 Javascript
js实现导航吸顶效果
Feb 24 Javascript
jQuery树控件zTree使用方法详解(一)
Feb 28 Javascript
Vue关于数据绑定出错解决办法
May 15 Javascript
Electron-vue脚手架改造vue项目的方法
Oct 22 Javascript
Vue组件Draggable实现拖拽功能
Dec 01 Javascript
react中使用css的7中方式(最全总结)
Feb 11 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
Jun 14 Javascript
基于Vue全局组件与局部组件的区别说明
Aug 11 Javascript
原生js 实现表单验证功能
Feb 08 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
Jul 16 #Javascript
JS实现返回上一页并刷新页面的方法分析
Jul 16 #Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
Jul 16 #Javascript
微信小程序-API接口安全详解
Jul 16 #Javascript
jquery实现垂直无限轮播的方法分析
Jul 16 #jQuery
JavaScript解析JSON数据示例
Jul 16 #Javascript
微信小程序 Storage更新详解
Jul 16 #Javascript
You might like
ThinkPHP空模块和空操作详解
2014/06/30 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
PHP实现一个轻量级容器的方法
2019/01/28 PHP
驱动事件的addEvent.js代码
2007/03/27 Javascript
基于jquery的3d效果实现代码
2011/03/23 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
2013/09/27 Javascript
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
2017/04/11 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
Vue动态加载图片在跨域时无法显示的问题及解决方法
2020/03/10 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
JS如何实现在弹出窗口中加载页面
2020/12/03 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
[01:04:08]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第一场 12.16
2020/12/18 DOTA
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
python 中pyqt5 树节点点击实现多窗口切换问题
2019/07/04 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
通过python3实现投票功能代码实例
2019/09/26 Python
基于打开pycharm有带图片md文件卡死问题的解决
2020/04/24 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
Python 在函数上添加包装器
2020/07/28 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
python Gabor滤波器讲解
2020/10/26 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
为女性购买传统的印度服装和婚纱:Kalkifashion
2019/07/22 全球购物
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
智能室内花园:Click & Grow
2021/01/29 全球购物
勇敢的心观后感
2015/06/09 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书
详解JavaScript中Arguments对象用途
2021/08/30 Javascript
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android