微信小程序开发之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 相关文章推荐
增强的 JavaScript 的 trim 函数的代码
Aug 13 Javascript
Javascript 变量作用域 两个可能会被忽略的小特性
Mar 23 Javascript
javascript调试过程中找不到哪里出错的可能原因
Dec 16 Javascript
酷! 不同风格页面布局幻灯片特效js实现
Feb 19 Javascript
vue.js入门教程之绑定class和style样式
Sep 02 Javascript
vue.js实现表格合并示例代码
Nov 30 Javascript
javascript数据类型详解
Feb 07 Javascript
基于JQuery的购物车添加删除以及结算功能示例
Mar 08 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
Jul 13 Javascript
关于vue单文件中引用路径的处理方法
Jan 08 Javascript
浅析js实现网页截图的两种方式
Nov 01 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
Feb 11 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 分页函数multi() discuz
2009/06/21 PHP
PHP限制页面只能在微信自带浏览器访问的代码
2014/01/15 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
Vue中的数据监听和数据交互案例解析
2017/07/12 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
2017/08/21 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
2019/08/16 Javascript
原生JS实现萤火虫效果
2020/03/07 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
2013/01/17 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
关于Python3 类方法、静态方法新解
2019/08/30 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
HTML5制作酷炫音频播放器插件图文教程
2014/12/30 HTML / CSS
中国旅游网站:途牛旅游网
2019/09/29 全球购物
Servlet如何得到服务器的信息
2015/12/22 面试题
银行委托书范本
2014/09/28 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
工会经费申请报告
2015/05/15 职场文书
青春雷锋观后感
2015/06/10 职场文书
餐馆开业致辞
2015/08/01 职场文书
公司档案管理制度
2015/08/05 职场文书
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python
详细聊聊vue中组件的props属性
2021/11/02 Vue.js
HDFS免重启挂载新磁盘
2022/04/06 Servers