小程序自定义弹框效果


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 相关文章推荐
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
Sep 02 Javascript
jQuery中的编程范式详解
Dec 15 Javascript
浅谈Jquery为元素绑定事件
Apr 27 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
May 11 Javascript
浅析Node.js中的内存泄漏问题
Jun 23 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
Aug 24 Javascript
使用JavaScript实现ajax的实例代码
May 11 Javascript
jQuery实现图片轮播效果代码
Sep 27 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
Apr 18 Javascript
jQuery实现base64前台加密解密功能详解
Aug 29 jQuery
Vue实现根据hash高亮选项卡
May 27 Javascript
Vue快速实现通用表单验证的示例代码
Jan 09 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
Apache 配置详解(最好的APACHE配置教程)
2010/07/04 PHP
ThinkPHP的L方法使用简介
2014/06/18 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
2016/04/23 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
Javascript 面试题随笔
2011/03/31 Javascript
合并table相同单元格的jquery插件分享(很精简)
2011/06/20 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
2014/03/18 Javascript
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
JavaScript头像上传插件源码分享
2016/03/29 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
JavaScript使用键盘输入控制实现数字验证功能
2016/08/19 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
Python编写屏幕截图程序方法
2015/02/18 Python
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
Python类的继承和多态代码详解
2017/12/27 Python
python使用matplotlib画柱状图、散点图
2019/03/18 Python
基于h5py的使用及数据封装代码
2019/12/26 Python
解决django的template中如果无法引用MEDIA_URL问题
2020/04/07 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
Ruby如何实现动态方法调用
2012/11/18 面试题
公司运动会策划方案
2014/05/25 职场文书
公司人事任命通知
2015/04/20 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
拿破仑传读书笔记
2015/07/01 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android