微信小程序表单弹窗实例


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 相关文章推荐
JavaScript 设计模式学习 Singleton
Jul 27 Javascript
jqueyr判断checkbox组的选中(示例代码)
Nov 08 Javascript
jquery获取当前点击对象的value方法
Feb 28 Javascript
javascript学习笔记(八)正则表达式
Oct 08 Javascript
Javascript模块化编程详解
Dec 01 Javascript
vue基于Vue2.0和高德地图的地图组件实例
Apr 28 Javascript
JS实现无缝循环marquee滚动效果
May 22 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
Oct 13 jQuery
实例学习JavaScript读取和写入cookie
Jan 29 Javascript
setTimeout时间设置为0详细解析
Mar 13 Javascript
利用Promise自定义一个GET请求的函数示例代码
Mar 20 Javascript
Vue中使用better-scroll实现轮播图组件
Mar 07 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 获取远程文件内容的函数代码
2010/03/24 PHP
php cookie使用方法学习笔记分享
2013/11/07 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
redis查看连接数及php模拟并发创建redis连接的方法
2016/12/15 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
wordpress自定义标签云与随机获取标签的方法详解
2019/03/22 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
Javascript实现的分页函数
2007/02/07 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
js验证密码强度解析
2020/03/18 Javascript
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
python判断字符串是否包含子字符串的方法
2015/03/24 Python
浅谈Python生成器generator之next和send的运行流程(详解)
2017/05/08 Python
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
python将图片转base64,实现前端显示
2020/01/09 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
传播学毕业生求职信
2013/10/11 职场文书
餐饮营销方案
2014/02/23 职场文书
法人授权委托书范本
2014/09/17 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android
SQLServer RANK() 排名函数的使用
2022/03/23 SQL Server
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript