小程序自定义弹框效果


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代码
Jul 20 Javascript
javascript对talbe进行动态添加、删除、验证实现代码
Mar 29 Javascript
js生成随机数之random函数随机示例
Dec 20 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
Mar 25 Javascript
使用jQuery处理AJAX请求的基础学习教程
May 10 Javascript
javascript实现页面滚屏效果
Jan 17 Javascript
浅谈react.js 之 批量添加与删除功能
Apr 17 Javascript
基于 Vue 的树形选择组件的示例代码
Aug 18 Javascript
fullpage.js最后一屏滚动方式
Feb 06 Javascript
Vue插槽原理与用法详解
Mar 05 Javascript
Angular value与ngValue区别详解
Nov 27 Javascript
JS document内容及样式操作完整示例
Jan 14 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支持页面回退的两种方法
2008/01/10 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
php查找字符串中第一个非0的位置截取
2017/02/27 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
javascript SocialHistory 检查访问者是否访问过某站点
2008/08/02 Javascript
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
jQuery中:lt选择器用法实例
2014/12/29 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
2016/12/29 Javascript
从零开始学习Node.js系列教程二:文本提交与显示方法
2017/04/13 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
vue中template的三种写法示例
2020/10/21 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
介绍Python中的fabs()方法的使用
2015/05/14 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
Python-for循环的内部机制
2020/06/12 Python
详解python logging日志传输
2020/07/01 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
Omio葡萄牙:全欧洲低价大巴、火车和航班搜索和比价
2019/02/09 全球购物
应届大专毕业生个人自荐信
2013/09/22 职场文书
大专自我鉴定范文
2013/10/01 职场文书
幼儿园父亲节活动方案
2014/03/11 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
大学学风建设方案
2014/05/04 职场文书
租房协议书范例
2014/10/14 职场文书
信息简报范文
2015/07/21 职场文书
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python