微信小程序之MaterialDesign--input组件详解


Posted in Javascript onFebruary 15, 2017

主要通过input输入事件配合css的transform动态改变实现这种效果。

实际调试过程中,input组件bindinput事件触发后回调的detail对象,在模拟器中含有cursor属性,在真机中(测过安卓,ios没测过)却没有该属性,最后选择detail对象中的value属性的值的长度来同步输入的位数。

bindfocus事件最好不要添加改变css的代码 。

预览图片:

微信小程序之MaterialDesign--input组件详解

微信小程序之MaterialDesign--input组件详解

JS:

//index.js
//获取应用实例
var app = getApp()
Page({
 data: {
  v_username_border:'', //用户输入框底部border样式
  v_pwd_border:'', // 密码输入框底部border样式
  v_float_username:'', // 浮动文字字transform 样式
  v_float_pwd:'',
  num_current_un:0, // 当前输入的文本位数
  sp_num_current_un:'', // 当前输入文本位数超过限制时的样式
  isPwdError:false // 提交时 密码输入错误时的文本提示
 },
 onLoad: function () {
  console.log('onLoad')
 },
 // 用户名输入框获取焦点时事件回调
 usernameFocus:function(e){
  var that = this;
  console.log(e.detail)
 },
 // 用户名输入框输入时事件回调
 usernameInput:function(e){
  console.log(e.detail)
   this.setData({
   v_username_border:'border-bottom:1px solid red',
   num_current_un:e.detail.value.length
  })
  if(e.detail.value.length!=0){
    this.setData({
    v_float_username:'color:red ;transform: translateY(-18.5px)',
    sp_num_current_un:'color:lightseagreen;'
   })
   if(e.detail.value.length>20){
    this.setData({
     sp_num_current_un:'color:orangered;'
    })
   }
  }else{
   this.setData({
    v_float_username:'transform: translateY(0px)',
   })
  }
 },
 // // 用户名输入框失去焦点时回调
 usernameBlur:function(e){
  console.log("onBlur")
   this.setData({
   v_username_border:'border-bottom:1px solid grey'
  })
 },
 pwdFocus:function(e){
  console.log('onFocus')
 },
 pwdInput:function(e){
  this.setData({
   v_pwd_border:'border-bottom:1px solid red',
   isPwdError:false
  })
  console.log(e.detail)
  if(e.detail.value.length!=0){
   this.setData({
    v_float_pwd:'color:red ; transform: translateY(-18.5px)',
   })
  }else{
   this.setData({
    v_float_pwd:'transform: translateY(0px)',
   })
  }
 },
  pwdBlur:function(e){
  console.log("onBlur")
   this.setData({
   v_pwd_border:'border-bottom:1px solid grey; '
  })
 },
// 登录按钮模拟表单提交 可用form组件代替
 onLogin:function(e){
  this.setData({
   isPwdError:true
  })
 }
})

源码地址:We-MaterialDesign_3water.rar

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

Javascript 相关文章推荐
node.js中的http.response.end方法使用说明
Dec 14 Javascript
[原创]Javascript 实现广告后加载 可加载百度谷歌联盟广告
May 11 Javascript
9个让JavaScript调试更简单的Console命令
Nov 14 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
Mar 21 Javascript
js 函数式编程学习笔记
Mar 25 Javascript
详解用Node.js写一个简单的命令行工具
Mar 01 Javascript
axios发送post请求springMVC接收不到参数的解决方法
Mar 05 Javascript
详解React native fetch遇到的坑
Aug 30 Javascript
在vue项目中优雅的使用SVG的方法实例详解
Dec 03 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
Dec 06 Javascript
Vue 组件复用多次自定义参数操作
Jul 27 Javascript
JS算法教程之字符串去重与字符串反转
Dec 15 Javascript
Bootstrap table简单使用总结
Feb 15 #Javascript
原生js轮播(仿慕课网)
Feb 15 #Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
Feb 15 #Javascript
Canvas实现放射线动画效果
Feb 15 #Javascript
微信小程序 开发经验整理
Feb 15 #Javascript
bootstrap table操作技巧分享
Feb 15 #Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
Feb 15 #Javascript
You might like
截获网站title标签之家内容的例子
2006/10/09 PHP
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
Laravel框架控制器,视图及模型操作图文详解
2019/12/04 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
PHP7新特性简述
2017/06/11 Javascript
Vue axios设置访问基础路径方法
2018/09/19 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
JavaScript实现打砖块游戏
2020/02/25 Javascript
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
c++生成dll使用python调用dll的方法
2014/01/20 Python
Python获取央视节目单的实现代码
2015/07/25 Python
Python中的迭代器与生成器高级用法解析
2016/06/28 Python
python 文件操作删除某行的实例
2017/09/04 Python
Python3调用微信企业号API发送文本消息代码示例
2017/11/10 Python
代码讲解Python对Windows服务进行监控
2018/02/11 Python
Flask-Mail用法实例分析
2018/07/21 Python
Django csrf 验证问题的实现
2018/10/09 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
2019/10/11 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
关于感恩的演讲稿200字
2014/08/26 职场文书
反洗钱宣传活动总结
2014/08/26 职场文书
英文感谢信格式
2015/01/21 职场文书
公司表扬稿范文
2015/05/05 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
Python实现生成bmp图像的方法
2021/06/13 Python