微信小程序开发之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 相关文章推荐
EasySlider 基于jQuery功能强大简单易用的滑动门插件
Jun 11 Javascript
ExtJS4中的requires使用方法示例介绍
Dec 03 Javascript
清除div下面的所有标签的方法
Feb 17 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
Feb 23 Javascript
JavaScript数组和对象的复制
Mar 21 Javascript
详解vue2.0组件通信各种情况总结与实例分析
Mar 22 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 jQuery
详解jQuery中关于Ajax的几个常用的函数
Jul 17 jQuery
ES6中javascript实现函数绑定及类的事件绑定功能详解
Nov 08 Javascript
vue.js在标签属性中插入变量参数的方法
Mar 06 Javascript
详解angular2如何手动点击特定元素上的点击事件
Oct 16 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
Dec 30 Vue.js
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
用Flash图形化数据(二)
2006/10/09 PHP
用PHP实现ODBC数据分页显示一例
2006/10/09 PHP
ThinkPHP中U方法的使用浅析
2014/06/13 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
页面中iframe相互传值传参
2009/12/13 Javascript
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
JavaScript中常用的运算符小结
2012/01/18 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
使用AmplifyJS组件配合JavaScript进行编程的指南
2015/07/28 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
Bootstrap模态对话框的简单使用
2016/04/29 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
javascript中的深复制详解及实例分析
2016/12/29 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
深入浅析vue中cross-env的使用
2019/09/12 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
2020/09/02 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
Python pass详细介绍及实例代码
2016/11/24 Python
Python爬虫爬取一个网页上的图片地址实例代码
2018/01/16 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
安装PyInstaller失败问题解决
2019/12/14 Python
安装完Python包然后找不到模块的解决步骤
2020/02/13 Python
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
四风问题个人对照检查剖析材料
2014/09/27 职场文书
思想纪律作风整顿剖析材料
2014/10/11 职场文书