微信小程序表单弹窗实例


Posted in Javascript onJuly 19, 2018

开发中有时候会碰到需要一个表单弹窗来处理数据的提交处理,然后这次发布的这套源码就是解决这个问题!

微信小程序表单弹窗实例

WXML代码如何:

<!--button--> 
<view class="btn" bindtap="powerDrawer" data-statu="open">button</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>

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 
    } 
   ); 
  } 
 } 
 
})

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.5; 
 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;}

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

Javascript 相关文章推荐
让ie运行js时提示允许阻止内容运行的解决方法
Oct 24 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
Feb 23 Javascript
jquery的each方法使用示例分享
Mar 25 Javascript
js鼠标点击图片实现随机变换图片的方法
Feb 16 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
May 06 Javascript
jQuery实现限制文本框的输入长度
Jan 11 Javascript
深入学习 JavaScript中的函数调用
Mar 23 Javascript
利用express启动一个server服务的方法
Sep 17 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
Apr 26 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
Aug 12 Javascript
js实现简单掷骰子小游戏
Oct 24 Javascript
JavaScript实现简单验证码
Aug 24 Javascript
vue用递归组件写树形控件的实例代码
Jul 19 #Javascript
如何理解Vue的v-model指令的使用方法
Jul 19 #Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
Jul 19 #Javascript
微信小程序自定义对话框弹出和隐藏动画
Jul 19 #Javascript
浅谈Vue初学之props的驼峰命名
Jul 19 #Javascript
解决vue-cli3 使用子目录部署问题
Jul 19 #Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
Jul 19 #Javascript
You might like
摩卡咖啡
2021/03/03 咖啡文化
打造计数器DIY三步曲(下)
2006/10/09 PHP
php将会员数据导入到ucenter的代码
2010/07/18 PHP
详解php伪造Referer请求反盗链资源
2019/01/24 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
jquery.post用法关于type设置问题补充
2014/01/03 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
JS面向对象编程详解
2016/03/06 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
angularjs下拉框空白的解决办法
2017/06/20 Javascript
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
vuex 动态注册方法 registerModule的实现
2019/07/03 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
javascript设计模式 ? 原型模式原理与应用实例分析
2020/04/10 Javascript
[02:10]DOTA2亚洲邀请赛 EG战队出场宣传片
2015/02/07 DOTA
Python使用代理抓取网站图片(多线程)
2014/03/14 Python
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
Python算术运算符实例详解
2017/05/31 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
Timex手表官网:美国运动休闲手表品牌
2017/01/28 全球购物
感恩节红领巾广播稿
2014/02/11 职场文书
维稳承诺书
2015/01/20 职场文书
会议通知
2015/04/15 职场文书
HttpClient实现表单提交上传文件
2022/08/14 Java/Android