小程序自定义弹框效果


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 相关文章推荐
ppk谈JavaScript style属性
Oct 10 Javascript
javascipt匹配单行和多行注释的正则表达式
Nov 20 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
May 08 Javascript
Ext GridPanel加载完数据后进行操作示例代码
Jun 17 Javascript
使用jQuery实现input数值增量和减量的方法
Jan 24 Javascript
JQuery基础语法小结
Feb 27 Javascript
详解JavaScript编程中正则表达式的使用
Oct 25 Javascript
分享JavaScript与Java中MD5使用两个例子
Dec 23 Javascript
jQuery基于扩展实现的倒计时效果
May 14 Javascript
AngularJS封装$http.post()实例详解
May 06 Javascript
使用Vue CLI创建typescript项目的方法
Aug 09 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
Sep 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
我的论坛源代码(三)
2006/10/09 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
2014/06/10 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
CI框架常用函数封装实例
2016/11/21 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
Laravel学习基础之migrate的使用教程
2017/10/11 PHP
jquery 上下滚动广告
2009/06/17 Javascript
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
jquery each()源代码
2011/02/14 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
JavaScript实现给按钮加上双重动作的方法
2015/08/14 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
jQuery中Datatables增加跳转到指定页功能
2017/02/08 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
vue-cli设置publicPath小记
2020/04/14 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
[01:13:51]TNC vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python爬虫之正则表达式的使用教程详解
2018/10/25 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
2019/08/14 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
pytorch数据预处理错误的解决
2020/02/20 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
HTML5 预加载让页面得以快速呈现
2013/08/13 HTML / CSS
几道数据库的概念性面试题
2014/05/30 面试题
创业计划书如何编写
2014/02/06 职场文书
员工保密承诺书
2014/05/28 职场文书
理发店策划方案
2014/06/05 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
Python 语言实现六大查找算法
2021/06/30 Python
python多线程方法详解
2022/01/18 Python
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js