百度小程序自定义通用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 相关文章推荐
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
Jan 22 Javascript
qq悬浮代码(兼容各个浏览器)
Jan 29 Javascript
JavaScript中常用的六种互动方法示例
Mar 13 Javascript
jsMind通过鼠标拖拽的方式调整节点位置
Apr 13 Javascript
老生常谈 关于JavaScript的类的继承
Jun 24 Javascript
微信小程序movable view移动图片和双指缩放实例代码
Aug 08 Javascript
JS 实现分页打印功能
May 16 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
Aug 10 Javascript
解决vue打包css文件中背景图片的路径问题
Sep 03 Javascript
微信小程序实现省市区三级地址选择
Jun 21 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
Nov 05 Javascript
原生JavaScript实现换肤
Feb 19 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
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
ThinkPHP安装和设置
2015/07/27 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
php实现微信分享朋友链接功能
2019/02/18 PHP
Thinkphp5框架使用validate实现验证功能的方法
2019/08/27 PHP
兼容IE和FF的js脚本代码小结(比较常用)
2010/12/06 Javascript
如何使用Jquery获取Form表单中被选中的radio值
2013/08/09 Javascript
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
Html5+jQuery+CSS制作相册小记录
2016/12/30 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
ES6新增的数组知识实例小结
2020/05/23 Javascript
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
谈谈JavaScript令人迷惑的==与+
2020/08/31 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
Python实现的数据结构与算法之队列详解
2015/04/22 Python
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
Python实现破解猜数游戏算法示例
2017/09/25 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
2020/03/05 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
完美解决jupyter由于无法import新包的问题
2020/05/26 Python
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
大学生创业计划书的范文
2014/01/07 职场文书
目标责任书范文
2014/04/14 职场文书
交通工程专业推荐信
2014/09/06 职场文书
2014年大学团支部工作总结
2014/12/02 职场文书
高考1977观后感
2015/06/04 职场文书
雷锋观后感
2015/06/10 职场文书
张丽莉观后感
2015/06/16 职场文书
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis