微信小程序实现弹框效果


Posted in Javascript onMay 26, 2020

本文实例为大家分享了微信小程序实现弹框效果的具体代码,供大家参考,具体内容如下

先上代码

wxml部分:

<view class='top' bindtap='powerDrawer' data-statu="open" data-num='300'>
 <text>向上弹起</text>
</view>

<view class='top' bindtap='powerDrawer' data-statu="open" data-num='-300'>
 <text>向下弹出</text>
</view>



<!--遮罩部分-->
<view class="drawer_screen" wx:if="{{showModalStatus}}" bindtap="powerDrawer" data-statu="close"></view> 
<!--弹出层内容-->
<!--使用animation属性指定需要执行的动画-->
<view animation="{{animationData}}" class="drawer_box" wx:if="{{showModalStatus}}"> 
 <view class='modalBox'>
 <view class='modalQues'>是否退出?</view>
 <view class='modalConf'>是否确定退出</view>
 <view class='hidePick'>
  <text bindtap="powerDrawer" data-statu="close" class='hideModal' >确定</text>
  <text bindtap="powerDrawer" data-statu="close" class='hideModal' >取消</text>
 </view>
 </view>
</view>

wxss部分:

.top {
 margin: 0 auto;
 margin-top: 50rpx;
 background: #1da0ee;
 color: #fff;
 width: 50vw;
 text-align: center
}

.drawer_screen { 
 width: 100%; 
 height: 100%; 
 position: fixed; 
 top: 0; 
 left: 0; 
 z-index: 1000; 
 background: #000; 
 opacity: 0.5; 
 overflow: hidden; 
} 
 
/*content*/
.drawer_box { 
 width:600rpx;
 height:300rpx;
 overflow:hidden;
 position:fixed;
 top:50%;
 left:50%;
 z-index:1001;
 background:#FAFAFA;
 margin-top:-150rpx;
 border-radius:3px;
 margin-left:-300rpx;
} 

.modalBox {
 padding: 60rpx;
 font-size: 30rpx;
}


.modalConf {
 font-size: 24rpx;
 color: #999;
 margin-top: 20rpx; 
}

.hidePick {
 text-align: right;
 margin-top: 50rpx;
}

.hideModal {
 color: #1da0ee;
 margin-left: 130rpx;
}

js部分:

Page({
 data: {

 },
 // 自定义弹框
 powerDrawer: function (e) {
 console.log(e) //打印出当前对象
 var currentStatu = e.currentTarget.dataset.statu; //获取statu属性值
 var currentNum = e.currentTarget.dataset.num;//获取num属性值
 currentNum = parseInt(currentNum , 10) //注意,这一步是将字符串转换为数字
 this.util(currentStatu,currentNum) //将参数引入util方法
 },
 util: function (currentStatu,currentNum) {
 /* 动画部分 */
 // 第1步:创建动画实例 
 var animation = wx.createAnimation({
  duration: 200, //动画时长 
  timingFunction: "linear", //线性 
  delay: 0 //0则不延迟 
 });

 // 第2步:这个动画实例赋给当前的动画实例 
 this.animation = animation;
 console.log(currentNum)
 // 第3步:执行第一组动画 
 animation.opacity(0).translateY(currentNum).step();

 // 第4步:导出动画对象赋给数据对象储存 
 this.setData({
  animationData: animation.export()
 })

 // 第5步:设置定时器到指定时候后,执行第二组动画 
 setTimeout(function () {
  // 执行第二组动画 
  animation.opacity(1).translateY(0).step();
  // 给数据对象储存的第一组动画,更替为执行完第二组动画的动画对象 
  this.setData({
  animationData: animation
  })

  //关闭 
  if (currentStatu == "close") {
  this.setData(
   {
   showModalStatus: false
   }
  );
  }
 }.bind(this), 200)

 // 显示 
 if (currentStatu == "open") {
  this.setData(
  {
   showModalStatus: true
  }
  );
 }
 },
})

这只是很简单的一个弹框,类似的左右弹出只需要将translateY改为translateX就行了。 但是这段代码有一个问题就是当你点击关闭的时候,currentNum是不存在的,同时关闭弹框时currentNum我们不可以赋值 , 所以需要利用小程序的缓存APi来完善这个动效。

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
屏蔽F1~F12的快捷键的js函数
May 06 Javascript
原生js实现shift/ctrl/alt按键的获取
Apr 08 Javascript
jquery获取tagName再进行判断
May 29 Javascript
js判断当前浏览器类型,判断IE浏览器方法
Jun 02 Javascript
js检验密码强度(低中高)附图
Jun 05 Javascript
javascript将浮点数转换成整数的三个方法
Jun 23 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
May 19 Javascript
一张Web前端的思维导图分享
Jul 03 Javascript
js鼠标点击图片切换效果实现代码
Nov 19 Javascript
jQuery自定义组件(导入组件)
Nov 08 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
Feb 18 Javascript
layui 实现表格某一列显示图标
Sep 19 Javascript
微信小程序自定义弹出层效果
May 26 #Javascript
详解JSON.stringify()的5个秘密特性
May 26 #Javascript
微信小程序实现简单文字跑马灯
May 26 #Javascript
微信小程序实现带放大效果的轮播图
May 26 #Javascript
vue实现图片上传功能
May 28 #Javascript
小程序实现图片移动缩放效果
May 26 #Javascript
jQuery实现的分页插件完整示例
May 26 #jQuery
You might like
火车头采集器3.0采集图文教程
2007/03/17 PHP
php读取文件内容的三种可行方法示例介绍
2014/02/08 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
js性能优化技巧
2015/11/29 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
更高效的使用JQuery 这里总结了8个小技巧
2016/04/13 Javascript
Angularjs 依赖压缩及自定义过滤器写法
2017/02/04 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
2017/11/08 jQuery
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
详解Vue中watch的高级用法
2018/05/02 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
[02:25]DOTA2英雄基础教程 虚空假面
2014/01/02 DOTA
[04:59]2018DOTA2亚洲邀请赛 4.7 Mineski夺冠时刻
2018/04/09 DOTA
python实现可以断点续传和并发的ftp程序
2016/09/13 Python
树莓派用python中的OpenCV输出USB摄像头画面
2019/06/22 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
利用python画出AUC曲线的实例
2020/02/28 Python
Python如何存储数据到json文件
2020/03/09 Python
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
突袭HTML5之Javascript API扩展3—本地存储全新体验
2013/01/31 HTML / CSS
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
女大学生毕业找工作的自我评价
2013/10/03 职场文书
销售简历自我评价
2014/01/24 职场文书
道路建设实施方案
2014/03/18 职场文书
高考标语大全
2014/06/05 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
高中生第一学年自我鉴定2015
2014/09/28 职场文书
大学生求职意向书
2015/05/11 职场文书
被告答辩状范文
2015/05/22 职场文书
黑白记忆观后感
2015/06/18 职场文书