小程序自定义弹框效果


Posted in Javascript onNovember 16, 2020

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

wxml

<!--button-->
<view class="btn" bindtap="powerDrawer" data-statu="open">来点我呀</view>
 
<!--mask-->
<view class="drawer_screen" bindtap="powerDrawer" data-statu="close" wx:if="{{showModalStatus}}"></view>
<!--content-->
<!--使用animation属性指定需要执行的动画-->
<view animation="{{animationData}}" class="drawer_box" wx:if="{{showModalStatus}}">
 
 <!--drawer content-->
 <view class="drawer_title">弹窗标题</view>
 <view class="drawer_content">
  <view class="top grid">
   <label class="title col-0">标题</label>
   <input class="input_base input_h30 col-1" name="rName" value="可自行定义内容"></input>
  </view>
  <view class="top grid">
   <label class="title col-0">标题</label>
   <input class="input_base input_h30 col-1" name="mobile" value="110"></input>
  </view>
  <view class="top grid">
   <label class="title col-0">标题</label>
   <input class="input_base input_h30 col-1" name="phone" value="拒绝伸手党"></input>
  </view>
  <view class="top grid">
   <label class="title col-0">标题</label>
   <input class="input_base input_h30 col-1" name="Email" value="仅供学习使用"></input>
  </view>
  <view class="top bottom grid">
   <label class="title col-0">备注</label>
   <input class="input_base input_h30 col-1" name="bz"></input>
  </view>
 </view>
 <view class="btn_ok" bindtap="powerDrawer" data-statu="close">确定</view>
</view>

wxss

/*button*/
.btn {
 width: 80%;
 padding: 20rpx 0;
 border-radius: 10rpx;
 text-align: center;
 margin: 40rpx 10%;
 background: #000;
 color: #fff;
}
 
/*mask*/
.drawer_screen {
 width: 100%;
 height: 100%;
 position: fixed;
 top: 0;
 left: 0;
 z-index: 1000;
 background: #000;
 opacity: 0.75;
 overflow: hidden;
}
 
/*content*/
.drawer_box {
 width: 650rpx;
 overflow: hidden;
 position: fixed;
 top: 50%;
 left: 0;
 z-index: 1001;
 background: #FAFAFA;
 margin: -150px 50rpx 0 50rpx;
 border-radius: 3px;
}
 
.drawer_title{
 padding:15px;
 font: 20px "microsoft yahei";
 text-align: center;
}
.drawer_content {
 height: 210px;
 overflow-y: scroll; /*超出父盒子高度可滚动*/
}
 
.btn_ok{
 padding: 10px;
 font: 20px "microsoft yahei";
 text-align: center;
 border-top: 1px solid #E8E8EA;
 color: #3CC51F;
}
 
.top{
  padding-top:8px;
}
.bottom {
  padding-bottom:8px;
}
.title {
  height: 30px;
  line-height: 30px;
  width: 160rpx;
  text-align: center;
  display: inline-block;
  font: 300 28rpx/30px "microsoft yahei";
}
 
.input_base {
  border: 2rpx solid #ccc;
  padding-left: 10rpx;
  margin-right: 50rpx;
}
.input_h30{
  height: 30px;
  line-height: 30px;
}
.input_h60{
  height: 60px;
}
.input_view{
  font: 12px "microsoft yahei";
  background: #fff;
  color:#000;
  line-height: 30px;
}
 
input {
  font: 12px "microsoft yahei";
  background: #fff;
  color:#000 ;
}
radio{
  margin-right: 20px;
}
.grid { display: -webkit-box; display: box; }
.col-0 {-webkit-box-flex:0;box-flex:0;}
.col-1 {-webkit-box-flex:1;box-flex:1;}
.fl { float: left;}
.fr { float: right;}

js

Page({
 data: {
  showModalStatus: false
 },
 powerDrawer: function (e) {
  var currentStatu = e.currentTarget.dataset.statu;
  this.util(currentStatu)
 },
 util: function(currentStatu){
  /* 动画部分 */
  // 第1步:创建动画实例
  var animation = wx.createAnimation({
   duration: 200, //动画时长
   timingFunction: "linear", //线性
   delay: 0 //0则不延迟
  });
   
  // 第2步:这个动画实例赋给当前的动画实例
  this.animation = animation;
 
  // 第3步:执行第一组动画
  animation.opacity(0).rotateX(-100).step();
 
  // 第4步:导出动画对象赋给数据对象储存
  this.setData({
   animationData: animation.export()
  })
   
  // 第5步:设置定时器到指定时候后,执行第二组动画
  setTimeout(function () {
   // 执行第二组动画
   animation.opacity(1).rotateX(0).step();
   // 给数据对象储存的第一组动画,更替为执行完第二组动画的动画对象
   this.setData({
    animationData: animation
   })
    
   //关闭
   if (currentStatu == "close") {
    this.setData(
     {
      showModalStatus: false
     }
    );
   }
  }.bind(this), 200)
  
  // 显示
  if (currentStatu == "open") {
   this.setData(
    {
     showModalStatus: true
    }
   );
  }
 }
 
})

仅供参考。

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

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

Javascript 相关文章推荐
JS宝典学习笔记(下)
Jan 10 Javascript
两种简单实现菜单高亮显示的JS类代码
Jun 27 Javascript
jquery表单验证使用插件formValidator
Nov 10 Javascript
js获取客户端网卡的IP地址、MAC地址
Mar 26 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
May 30 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
Jun 25 Javascript
javascript汉字拼音互转的简单实例
Oct 09 Javascript
Sequelize中用group by进行分组聚合查询
Dec 12 Javascript
JS实现物体带缓冲的间歇运动效果示例
Dec 22 Javascript
实例详解JSON取值(key是中文或者数字)方式
Aug 24 Javascript
使用localStorage替代cookie做本地存储
Sep 25 Javascript
超简单的微信小程序轮播图
Nov 22 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
Nov 16 #Javascript
基于Vue+Webpack拆分路由文件实现管理
Nov 16 #Javascript
小程序实现上下切换位置
Nov 16 #Javascript
小程序实现点击tab切换左右滑动
Nov 16 #Javascript
微信小程序实现滚动Tab选项卡
Nov 16 #Javascript
小程序实现tab标签页
Nov 16 #Javascript
vue+Element-ui实现登录注册表单
Nov 17 #Javascript
You might like
PHP parse_url 一个好用的函数
2009/10/03 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
thinkPHP模板中函数的使用方法示例
2016/11/30 PHP
PHP接口继承及接口多继承原理与实现方法详解
2017/10/18 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
javascript new一个对象的实质
2010/01/07 Javascript
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
JS实现鼠标移上去显示图片或微信二维码
2016/12/14 Javascript
js 颜色选择插件
2017/01/23 Javascript
树结构之JavaScript
2017/01/24 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
浅谈vue异步数据影响页面渲染
2019/10/29 Javascript
python PIL模块与随机生成中文验证码
2016/02/27 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
Python爬虫动态ip代理防止被封的方法
2019/07/07 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
python中的列表和元组区别分析
2020/12/30 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
澳洲的服装老品牌:SABA
2018/02/06 全球购物
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
节约电力资源的建议书
2014/03/12 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
新店开张活动方案
2014/08/24 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
换届选举主持词
2015/07/03 职场文书
python实现网络五子棋
2021/04/11 Python