微信小程序自定义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 相关文章推荐
js获取指定日期周数以及星期几的小例子
Jun 27 Javascript
Windows 系统下安装和部署Egret的开发环境
Jul 31 Javascript
javascript实现复选框选中属性
Mar 25 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
Mar 03 Javascript
详解利用jsx写vue组件的方法示例
Jul 17 Javascript
seajs下require书写约定实例分析
May 16 Javascript
JavaScript设计模式之代理模式实例分析
Jan 16 Javascript
如何使用VuePress搭建一个类型element ui文档
Feb 14 Javascript
vue 开发之路由配置方法详解
Dec 02 Javascript
vue.js iview打包上线后字体图标不显示解决办法
Jan 20 Javascript
JavaScript中的执行环境和作用域链
Sep 04 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
Nov 10 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判断图片格式的七种方法小结
2013/06/03 PHP
PHP扩展程序实现守护进程
2015/04/16 PHP
PHP解密Unicode及Escape加密字符串
2015/05/17 PHP
PHP实现生成唯一会员卡号
2015/08/24 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
PHPCMS2008广告模板SQL注入漏洞修复
2016/10/11 PHP
php装饰者模式简单应用案例分析
2019/10/23 PHP
javascript中onclick(this)用法介绍
2013/04/19 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
2013/12/14 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
Nodejs处理异常操作示例
2018/12/25 NodeJs
微信小程序视图控件与bindtap之间的问题的解决
2019/04/08 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
python实现网页链接提取的方法分享
2014/02/25 Python
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
2018/12/10 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
爱他美官方海外旗舰店:Aptamil奶粉
2017/12/22 全球购物
贝斯特韦斯特酒店集团官网:Best Western
2019/01/03 全球购物
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
表彰先进的通报
2014/01/31 职场文书
森马旗舰店双十一营销方案
2014/09/29 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
狮子林导游词
2015/02/03 职场文书
党员年度个人总结
2015/02/14 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书
以下牛机,你有几个
2022/04/05 无线电