微信小程序开发之toast等弹框提示使用教程


Posted in Javascript onJune 08, 2017

介绍

微信小程序中toast消息提示框只有两种显示的效果,就是成功和加载,使用wx.showToast(OBJECT)

看下有关参数说明:

微信小程序开发之toast等弹框提示使用教程

代码很简单:

wx.showToast({
 title: '成功',
 icon: 'succes',
 duration: 1000,
 mask:true
 })

微信小程序开发之toast等弹框提示使用教程

mask属性好像并没有起作用。有一点值得注意的是提示的延迟时间是有限制的,最大10000毫秒。

还有一个函数是wx.hideToast() ,这个是隐藏toast,主要用于显示加载提示的时候用到,如:

wx.showToast({
 title: '加载中',
 icon: 'loading',
 duration: 10000
})

setTimeout(function(){
 wx.hideToast()
},2000)

本来加载时间是10000毫秒的,然后2000毫秒的时候就隐藏了,这个具体情况而定了哈。

第二个弹窗是模态弹窗:wx.showModal(OBJECT)

参数如下:

微信小程序开发之toast等弹框提示使用教程

这个跟我们Android里面的Dialog相似,效果如下:

微信小程序开发之toast等弹框提示使用教程

代码如下:

wx.showModal({
 title: '提示',
 content: '模态弹窗',
 success: function (res) {
 if (res.confirm) {
 console.log('用户点击确定')
 }else{
 console.log('用户点击取消')
 }

 }
 })

最后一个是操作菜单:wx.showActionSheet(OBJECT)

这个函数我们在上一篇文章用过,这里说一下也无妨。

先看一下参数介绍:

微信小程序开发之toast等弹框提示使用教程

success有一个返回参数:

微信小程序开发之toast等弹框提示使用教程

这里直接贴官方实例了:

wx.showActionSheet({
 itemList: ['A', 'B', 'C'],
 success: function(res) {
 console.log(res.tapIndex)
 },
 fail: function(res) {
 console.log(res.errMsg)
 }
})

效果图:

微信小程序开发之toast等弹框提示使用教程

这里有个小问题,弹出showActionSheet之后,点击取消或者阴影处,会执行完fail之后,继续执行success函数,当然了,这里肯定有办法解决的,success其实有两个返回参数,除了tapIndex之外,还有一个就是cancle,cancle就是是否取消,返回一个boolean,在弹出这个框之后在success里面做个判断,if (!res.cancel) {做不取消的操作就行了}。当然了,你也可以自己来定义。

下面看个自定义弹窗的:

wxml:

<view class="commodity_screen" bindtap="hideModal" wx:if="{{showModalStatus}}"></view>
 <view animation="{{animationData}}" class="commodity_attr_box" wx:if="{{showModalStatus}}" bindtap="navigate">
 <text class="title">{{title}}</text>
 </view>

css:

.commodity_screen {
 width: 100%;
 height: 100%;
 position: fixed;
 top: 0;
 left: 0;
 background: #000;
 opacity: 0.2;
 overflow: hidden;
 z-index: 1000;
 color: #fff;
}

.commodity_attr_box {
 width: 100%;
 overflow: hidden;
 position: fixed;
 bottom: 0;
 left: 0;
 z-index: 2000;
 height: 60px;
 background: #fff;

}

.title {
 height: 100%;
 width: 100%;
 position: fixed;
 text-align: center;
 margin-top: 20px;
 margin-bottom: 20px;

}

js:

showView() {
 // 显示遮罩层
 var animation = wx.createAnimation({
 duration: 200,
 timingFunction: "linear",
 delay: 0
 })
 this.animation = animation
 animation.translateY(300).step()
 this.setData({
 animationData: animation.export(),
 showModalStatus: true
 })
 setTimeout(function () {
 animation.translateY(0).step()
 this.setData({
 animationData: animation.export()
 })
 }.bind(this), 200)
 },

 hideModal: function () {
 this.hideView();
 },

 hideView() {
 // 隐藏遮罩层
 var animation = wx.createAnimation({
 duration: 200,
 timingFunction: "linear",
 delay: 0
 })
 this.animation = animation
 animation.translateY(300).step()
 this.setData({
 animationData: animation.export(),
 })
 setTimeout(function () {
 animation.translateY(0).step()
 this.setData({
 animationData: animation.export(),
 showModalStatus: false
 })
 }.bind(this), 200)
 }

启用动画来做,效果杠杠的,自己动手来试试。

也可以使用action-sheet来布局,如下:

<action-sheet hidden="{{actionSheetHidden}}" bindchange="actionSheetChange">
 <block wx:for-items="{{actionSheetItems}}">
 <action-sheet-item class="item" bindtap="bind{{item}}">{{item}}</action-sheet-item>
 </block>
 <action-sheet-cancel class="cancel">取消</action-sheet-cancel>
</action-sheet>
Page({
data: {
 actionSheetHidden: true,
 actionSheetItems: items
 },
 actionSheetTap: function(e) {
 this.setData({
 actionSheetHidden: !this.data.actionSheetHidden
 })
 },
 actionSheetChange: function(e) {
 this.setData({
 actionSheetHidden: !this.data.actionSheetHidden
 })
 }
}
})

就是这么简单,赶紧动起来试试吧。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jQuery检测输入的字符串包含的中英文的数量
Apr 17 Javascript
实例详解AngularJS实现无限级联动菜单
Jan 15 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
Jun 13 Javascript
AngularJS 自定义指令详解及示例代码
Aug 17 Javascript
jquery横向纵向鼠标滚轮全屏切换
Feb 27 Javascript
JS实现的汉字与Unicode码相互转化功能分析
May 25 Javascript
js实现敏感词过滤算法及实现逻辑
Jul 24 Javascript
JavaScript引用类型Array实例分析
Jul 24 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
Sep 11 Javascript
基于React Native 0.52实现轮播图效果
Aug 25 Javascript
jQuery实现的导航条点击后高亮显示功能示例
Mar 04 jQuery
详解js动态获取浏览器或页面等容器的宽高
Mar 13 Javascript
javascript实现二叉树遍历的代码
Jun 08 #Javascript
微信小程序tabbar不显示解决办法
Jun 08 #Javascript
javascript实现二叉树的代码
Jun 08 #Javascript
微信小程序搜索组件wxSearch实例详解
Jun 08 #Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
Jun 08 #Javascript
angular实现图片懒加载实例代码
Jun 08 #Javascript
微信小程序日历组件calendar详解及实例
Jun 08 #Javascript
You might like
php异常处理方法实例汇总
2015/06/24 PHP
PHP保留两位小数的几种方法
2019/07/24 PHP
Yii框架安装简明教程
2020/05/15 PHP
js里怎么取select标签里的值并修改
2012/12/10 Javascript
DWR实现模拟Google搜索效果实现原理及代码
2013/01/30 Javascript
JS图片无缝、平滑滚动代码
2014/03/11 Javascript
JSON格式化输出
2014/11/10 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
浅析Bootstrap组件之面板组件
2016/05/04 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
vue实现文件上传功能
2018/08/13 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
Vue源码解析之Template转化为AST的实现方法
2018/12/14 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
js计算两个时间差 天 时 分 秒 毫秒的代码
2019/05/21 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
vue实现打地鼠小游戏
2020/08/21 Javascript
Python获取任意xml节点值的方法
2015/05/05 Python
Python简单格式化时间的方法【strftime函数】
2016/09/18 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
python win32 简单操作方法
2017/05/25 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
Python+Appium实现自动化清理微信僵尸好友的方法
2021/02/04 Python
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
如何用Python输出一个Fibonacci数列
2016/08/28 面试题
党员自我评价分享
2013/12/13 职场文书
工作表现自我评价
2014/02/08 职场文书
大学生第一学年自我鉴定
2014/09/12 职场文书
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis
把77A收信机改造成收音机
2022/04/05 无线电
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python