博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原创:微信小程序之MaterialDesign--input组件
阅读量:7217 次
发布时间:2019-06-29

本文共 2112 字,大约阅读时间需要 7 分钟。

hot3.png

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

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

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

预览图片:

122232_YE9k_3087340.gif

122242_J7oi_3087340.gif

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

源码地址

转载于:https://my.oschina.net/wxappunion/blog/830033

你可能感兴趣的文章
英文对应解释
查看>>
Robotics ToolBox机械臂仿真
查看>>
linux添加环境变量
查看>>
【uva 1312】Cricket Field(算法效率--技巧枚举)
查看>>
VS2017 MVC项目,新建控制器提示未能加载文件或程序集“Dapper.Contrib解决方法
查看>>
【ora-err】ORA-03113: end-of-file on communication channel
查看>>
00.索引-综述
查看>>
strcpy
查看>>
AC3 Rematrix
查看>>
C#之Windows Form Application与attribute
查看>>
函数与指针分析实例
查看>>
爬虫:pycurl模块的使用说明
查看>>
Halcon算子翻译——try
查看>>
Win732位安装PostgreSQL9
查看>>
Ext JS4学习笔记1——环境的搭建
查看>>
.net MVC3实现不同的角色用不同的登录页面
查看>>
Scala学习笔记-12
查看>>
eq与gt的妙用
查看>>
哈哈哈
查看>>
projectEuler pro10
查看>>