微信小程序开发之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 表单验证插件formValidation实现个性化错误提示
Jun 23 Javascript
JavaScript 继承详解(二)
Jul 13 Javascript
caller和callee的区别介绍及演示结果
Mar 10 Javascript
js网页滚动条滚动事件实例分析
May 05 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
Dec 02 Javascript
vue-router实现webApp切换页面动画效果代码
May 25 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
Apr 01 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
Apr 23 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
Jul 24 Javascript
js实现无限瀑布流实例方法
Sep 16 Javascript
JS代码触发事件代码实例
Jan 02 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
May 10 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图像处理类代码分享
2012/01/19 PHP
php自动载入类用法实例分析
2016/06/24 PHP
php查询及多条件查询
2017/02/26 PHP
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
python进程与线程小结实例分析
2018/11/11 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
JQuery1.8 判断元素是否绑定事件的方法
2014/07/10 Javascript
一款简单的jQuery图片标注效果附源码下载
2016/03/22 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
24个ES6方法解决JS实际开发问题(小结)
2020/05/31 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
Python3处理文件中每个词的方法
2015/05/22 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
numpy求平均值的维度设定的例子
2019/08/24 Python
解决Keras自带数据集与预训练model下载太慢问题
2020/06/12 Python
Python基于execjs运行js过程解析
2020/11/27 Python
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
党校学习个人总结
2015/02/15 职场文书
综合办公室岗位职责
2015/04/11 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技
Java使用HttpClient实现文件下载
2022/08/14 Java/Android