百度小程序自定义通用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 Validation表单验证使用详解
Sep 12 Javascript
Underscore源码分析
Dec 30 Javascript
Javascript之Date对象详解
Jun 07 Javascript
移动端 一个简单易懂的弹出框
Jul 06 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
Sep 06 Javascript
Angular通过angular-cli来搭建web前端项目的方法
Jul 27 Javascript
jQuery实现的简单无刷新评论功能示例
Nov 08 jQuery
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
Mar 06 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
Sep 18 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
Sep 27 Javascript
javascript实现弹出层效果
Dec 10 Javascript
js实现鼠标点击飘爱心效果
Aug 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
文件上传的实现
2006/10/09 PHP
php实现利用phpexcel导出数据
2013/08/24 PHP
ThinkPHP中自定义错误页面和提示页面实例
2014/11/22 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
jQuery对val和atrr(&quot;value&quot;)赋值的区别介绍
2014/09/26 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
vue双向绑定的简单实现
2016/12/22 Javascript
详解百度百科目录导航树小插件
2017/01/08 Javascript
深入理解vue-loader如何使用
2017/06/06 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
如何用JavaScript实现功能齐全的单链表详解
2019/02/11 Javascript
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
教你用Python创建微信聊天机器人
2020/03/31 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
python的依赖管理的实现
2019/05/14 Python
python自动发微信监控报警
2019/09/06 Python
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
SmartBuyGlasses意大利:购买太阳镜、眼镜和隐形眼镜
2018/11/20 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
什么是Remote Module
2016/06/10 面试题
2014公司党员自我评价范文
2014/09/11 职场文书
软件测试专业推荐信
2014/09/18 职场文书
详解vue中v-for的key唯一性
2021/05/15 Vue.js