微信小程序开发之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 相关文章推荐
setTimeout 不断吐食CPU的问题分析
Apr 01 Javascript
jQuery.clean使用方法及思路分析
Jan 07 Javascript
js冒泡法和数组转换成字符串示例代码
Aug 14 Javascript
js判断60秒以及倒计时示例代码
Jan 24 Javascript
推荐5 个常用的JavaScript调试技巧
Jan 08 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
Aug 28 Javascript
JS正则匹配中文的方法示例
Jan 06 Javascript
angular.js指令中的controller、compile与link函数的不同之处
May 10 Javascript
javascript、php关键字搜索函数的使用方法
May 29 Javascript
小程序实现选择题选择效果
Nov 04 Javascript
微信jssdk逻辑在vue中的运用详解
Nov 14 Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
Nov 21 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使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
PHP连接sftp并下载文件的方法教程
2018/08/26 PHP
摘自启点的main.js
2008/04/20 Javascript
关于this和self的使用说明
2010/08/01 Javascript
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
JavaScript中Cookie操作实例
2015/01/09 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
2016/02/02 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
2016/08/10 Javascript
在js中实现邮箱格式的验证方法(推荐)
2016/10/24 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
2018/01/08 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
2018/11/22 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
微信小程序实现图片压缩
2019/12/03 Javascript
Python时区设置方法与pytz查询时区教程
2013/11/27 Python
利用Python开发实现简单的记事本
2016/11/15 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
appium+python adb常用命令分享
2020/03/06 Python
keras 读取多标签图像数据方式
2020/06/12 Python
大学军训感言600字
2014/02/25 职场文书
读书月活动方案
2014/05/22 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
如何用JS实现简单的数据监听
2021/05/06 Javascript
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python