微信小程序表单弹窗实例


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 相关文章推荐
jquery获取复选框被选中的值
Apr 10 Javascript
js判断当前浏览器类型,判断IE浏览器方法
Jun 02 Javascript
javascript单例模式的简单实现方法
Jul 25 Javascript
Jquery实现顶部弹出框特效
Aug 08 Javascript
JS实现网页标题随机显示名人名言的方法
Nov 03 Javascript
jQuery表格插件datatables用法详解
Nov 23 Javascript
Angular实现双向折叠列表组件的示例代码
Nov 21 Javascript
vue axios 二次封装的示例代码
Dec 08 Javascript
VUE基于NUXT的SSR 服务端渲染
Nov 30 Javascript
在node中使用jwt签发与验证token的方法
Apr 03 Javascript
js实现简单页面全屏
Sep 17 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
Mar 03 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
基于php split()函数的用法详解
2013/06/05 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
PHP API接口必备之输出json格式数据示例代码
2017/06/27 PHP
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
jQuery实现视频作为全屏幕背景
2014/12/18 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
2016/06/21 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
微信上传视频文件提示(推荐)
2018/11/22 Javascript
详解服务端预渲染之Nuxt(介绍篇)
2019/04/07 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
JQuery省市联动效果实现过程详解
2020/05/08 jQuery
Vuejs通过拖动改变元素宽度实现自适应
2020/09/02 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
python实现合并两个数组的方法
2015/05/16 Python
儿童编程python入门
2018/05/08 Python
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
Python小白垃圾回收机制入门
2020/06/09 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
教师师德演讲稿
2014/05/06 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
普通党员个人整改措施
2014/10/27 职场文书
python基础入门之字典和集合
2021/06/13 Python
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers