小程序自定义弹框效果


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 相关文章推荐
Extjs中DisplayField的日期或者数字格式化扩展
Sep 03 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
Jan 19 Javascript
JavaScript中的onerror事件概述及使用
Apr 01 Javascript
固定背景实现的背景滚动特效示例分享
May 19 Javascript
javascript自定义startWith()和endWith()的两种方法
Nov 11 Javascript
为指定的元素添加遮罩层的示例代码
Jan 15 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
Jun 06 Javascript
angular $watch 一个变量的变化(实例讲解)
Aug 02 Javascript
React/Redux应用使用Async/Await的方法
Nov 16 Javascript
javascript中this的用法实践分析
Jul 29 Javascript
vue+element_ui上传文件,并传递额外参数操作
Dec 05 Vue.js
基于JavaScript实现简单扫雷游戏
Jan 02 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
PHPLog php 程序调试追踪工具
2009/09/09 PHP
php 模拟POST|GET操作实现代码
2010/07/20 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
2015/12/25 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
JS实现self的resend
2010/07/22 Javascript
JQuery中getJSON的使用方法
2010/12/13 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
jquery replace方法去空格
2017/05/08 jQuery
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
微信小程序拍照和摄像功能实现方法示例
2019/02/01 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
Python获取某一天是星期几的方法示例
2017/01/17 Python
使用Python实现毫秒级抢单功能
2019/06/06 Python
用Python 执行cmd命令
2020/12/18 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
canvas实现图片马赛克的示例代码
2018/03/26 HTML / CSS
学生档案自我鉴定
2013/10/07 职场文书
教师自我评价范文
2013/12/16 职场文书
业务副厂长岗位职责
2014/01/03 职场文书
采购部经理岗位职责
2014/02/10 职场文书
司机岗位职责说明书
2014/07/29 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
2015年端午节活动方案
2015/05/05 职场文书
《水上飞机》教学反思
2016/02/20 职场文书