微信小程序自定义toast弹窗效果的实现代码


Posted in Javascript onNovember 15, 2018

微信小程序里面的自带弹窗icon只有两种,success和loading。有时候用户输入错误的时候想加入一个提醒图标,也可以使用wx.showToast中的image来添加图片达到使用自定义图标的目的;但是如果图标是字体,或者提醒的内容有很长捏(小程序中提醒的内容最多只能设置7个字,多了会被隐藏),那就只有自定义toast弹窗了;

第一步:新建一个wxml文件用来装模板,方便以后使用,比如

微信小程序自定义toast弹窗效果的实现代码

然后在这里面添加模板代码

<template name="toast"> //name相当于模板的标识,引用的时候好判断引用哪一个
 <view class='toast-out' wx:if='{{isShow}}'>
//wx:if是条件渲染,使用这个是为了好判断是否显示或隐藏toast
 <view class='toast-in'>



 <span class='iconfont {{iconClass}}'></span> //使用的阿里字体图标,根据传入的class值改变显示的图标
 <view class='toast-txt'>
  {{txt}}




//需要显示的提醒内容
 </view>
 </view>
 </view>
</template>

第二步:定义toast的样式

.toast-out {
 position: fixed;
 top: 0;
 left: 0;
 z-index: 9999;
 width: 100%;
 height: 100%;
 display: flex; //小程序中多使用flex布局,很方便的
 justify-content: center;
 align-items: center;
}
.toast-out .toast-in {
 min-width: 100px;
 background: rgba(0, 0, 0, 0.7);
 padding: 6px;
 text-align: center;
 color: white;
 border-radius: 8px;
}
.toast-out .toast-in span {
 font-size: 30px;
}
.toast-out .toast-in .toast-txt {
 font-size: 14px;
}

第三步:在需要弹窗的页面import那个toast模板页面:

<import src="../../public/html/template.wxml" />

备注:../是指返回上一层目录即父目录,两个../即返回到父目录的父目录。/是根目录,绝对路径。这里也可以使用绝对路径

然后再在这个页面任何地方引用模板

<template is="toast" data="{{txt,isShow,iconClass}}"></template>

第四步:在引入弹窗页面的js中

在page的data里先定义  isShow:false //默认隐藏的  但是我有点奇怪的是,不定义这个属性,注释掉,都能正常的隐藏与显示。

 

    然后定义一个显示弹窗的函数

toastShow:function(str,icon){
 var _this = this;
 _this.setData({
 isShow: true,
 txt: str,
 iconClass:icon
 });
 setTimeout(function () { //toast消失
 _this.setData({
 isShow: false
 });
 }, 1500); 
}

 

然后在需要toast弹窗显示的事件里调用该事件就行了,比如:

log_btn:function(){
 var name=this.data.userName;if(name==""){
 this.toastShow('登录名不能为空',"icon-suo");
 }
}

 结果:

微信小程序自定义toast弹窗效果的实现代码

图标随意弄的。。。

或者是在把弹窗的js写入App({})里面,然后需要用的页面就直接getApp().toastShow()就行了。例如:

App({
 toastShow: function (that, str, icon){
 that.setData({
 isShow: true,
 txt: str,
 iconClass: icon
 });
 setTimeout(function () {
 that.setData({
 isShow: false
 });
 }, 1500);
 }, 
})

然后在需要引入弹窗的页面:

var app = getApp();

在该页面需要调用的函数中:

his_clear:function(){ 
 app.toastShow(this, "清除成功", "icon-correct"); 
},

连接:小程序使用阿里字体图标

总结: 和HTML不一样,小程序中wx:if条件渲染就可以实现隐藏与显示的wx:if="false"就是隐藏,true就是显示。

 

 使用display:flex弹性盒子布局很方便,就比如上面弹窗的水平与垂直居中,只要设置两个属性就可以了。不用再像以前一样还需要设置其它的一堆,以前水平垂直居中的方法

补充:

justify-content 的可选属性有:flex-start(全靠左),flex-end(全靠右),center(居中),space-between,space-around,initial(从父元素继承该属性)

可查看效果:http://www.runoob.com/try/playit.php?f=playcss_justify-content&preval=flex-start

align-items 的可选属性有:stretch,center,flex-start,flex-end,baseline(处于同一条基线),initial(设置为默认值),inherit(从父元素继承该属性)

可查看效果:http://www.runoob.com/try/playit.php?f=playcss_align-items&preval=baseline

总结

以上所述是小编给大家介绍的微信小程序之自定义toast弹窗,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript中的私有成员
Sep 18 Javascript
javascript动态添加表格数据行(ASP后台数据库保存例子)
May 08 Javascript
JS运行耗时操作的延时显示方法
Nov 19 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
May 31 Javascript
功能强大的jquery.validate表单验证插件
Nov 07 Javascript
JQuery实现动态操作表格
Jan 11 Javascript
js 发布订阅模式的实例讲解
Sep 10 Javascript
JavaScript数组的5种迭代方法
Sep 29 Javascript
让网站自动生成章节目录索引的多个js代码
Jan 07 Javascript
React 使用browserHistory项目访问404问题解决
Jun 01 Javascript
详解vue中async-await的使用误区
Dec 05 Javascript
vue.js 实现a标签href里添加参数
Nov 12 Javascript
搭建基于express框架运行环境的方法步骤
Nov 15 #Javascript
用图片替换checkbox原始样式并实现同样的功能
Nov 15 #Javascript
微信小程序swiper实现滑动放大缩小效果
Nov 15 #Javascript
微信小程序页面缩放式侧滑效果的实现代码
Nov 15 #Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
Nov 15 #Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
Nov 15 #Javascript
判断iOS、Android以及PC端的示例代码
Nov 15 #Javascript
You might like
怎样才能成为PHP高手?学会“懒惰”的编程
2006/12/05 PHP
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
jQuery 表单验证扩展(三)
2010/10/20 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
2013/06/28 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
2016/12/29 Javascript
JS简单生成随机数(随机密码)的方法
2017/05/11 Javascript
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
NodeJS实现自定义流的方法
2018/08/01 NodeJs
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
vue实现简单瀑布流布局
2020/05/28 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
python批量制作雷达图的实现方法
2016/07/26 Python
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
python:print格式化输出到文件的实例
2018/05/14 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
python+rsync精确同步指定格式文件
2019/08/29 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
巴西美妆购物网站:Kutiz Beauté
2019/03/13 全球购物
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
预备党员的自我评价
2014/03/12 职场文书
如何写好建议书
2014/03/13 职场文书
党员公开承诺书范文
2014/03/25 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
支行行长竞聘报告
2014/11/06 职场文书
财务部岗位职责范本
2015/04/14 职场文书
超强台风观后感
2015/06/09 职场文书
彻底解决MySQL使用中文乱码的方法
2022/01/22 MySQL