百度小程序自定义通用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 相关文章推荐
js实现兼容IE6与IE7的DIV高度
May 13 Javascript
js如何获取file控件的完整路径具体实现代码
May 15 Javascript
JS检测输入字符是否包含非法字符的示例代码
Feb 11 Javascript
jQuery Masonry瀑布流插件使用详解
Nov 17 Javascript
js实现禁止中文输入的方法
Jan 14 Javascript
AngularJS 执行流程详细介绍
Aug 18 Javascript
概述如何实现一个简单的浏览器端js模块加载器
Dec 07 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
Mar 04 Javascript
jquery实现图片上传前本地预览
Apr 28 jQuery
探索webpack模块及webpack3新特性
Sep 18 Javascript
JS工厂模式开发实践案例分析
Oct 17 Javascript
jQuery实现动态向上滚动
Dec 21 jQuery
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
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
判断PHP数组是否为空的代码
2011/09/08 PHP
基于wordpress主题制作的具体实现步骤
2013/05/10 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
纯PHP生成的一个树叶图片画图例子
2014/04/16 PHP
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
2007/10/01 Javascript
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
jquery 滚动条事件简单实例
2013/07/12 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
2016/06/24 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
通过js给网页加上水印背景实例
2019/06/17 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
vue在线动态切换主题色方案
2020/03/26 Javascript
Ant design vue中的联动选择取消操作
2020/10/31 Javascript
vue3.0实现插件封装
2020/12/14 Vue.js
Python装饰器decorator用法实例
2014/11/10 Python
Python中zip()函数的简单用法举例
2019/09/02 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
Python查找不限层级Json数据中某个key或者value的路径方式
2020/02/27 Python
PyTorch 导数应用的使用教程
2020/08/31 Python
三星美国官网:Samsung美国
2017/02/06 全球购物
《三个小伙伴》教学反思
2014/04/11 职场文书
农村党支部书记四风问题个人对照检查材料
2014/09/21 职场文书
党员个人总结范文
2015/02/14 职场文书
综合测评自我评价
2015/03/06 职场文书