找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索本站精品资源

首页 教程频道 小程序开发 查看内容

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

作者:模板之家 2018-1-25 10:03 544人关注

主要通过input输入事件配合css的transform动态改变实现这种效果。 实际调试过程中,input组件bindinput事件触发后回调的detail对象,在模拟器中含有cursor属性,在真机中(测过安卓,ios没测

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

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

bindfocus事件最好不要添加改变css的代码 。 
预览图片:

JS:

  1. //index.js
  2. //获取应用实例
  3. var app = getApp()
  4. Page({
  5.   data: {
  6.     v_username_border:'', //用户输入框底部border样式
  7.     v_pwd_border:'',  // 密码输入框底部border样式
  8.     v_float_username:'', // 浮动文字字transform 样式
  9.     v_float_pwd:'',
  10.     num_current_un:0,  // 当前输入的文本位数
  11.     sp_num_current_un:'', // 当前输入文本位数超过限制时的样式
  12.     isPwdError:false  // 提交时 密码输入错误时的文本提示
  13.   },
  14.   onLoad: function () {
  15.     console.log('onLoad')
  16.   },
  17.   // 用户名输入框获取焦点时事件回调
  18.   usernameFocus:function(e){
  19.     var that = this;
  20.     console.log(e.detail)
  21.   },
  22.   // 用户名输入框输入时事件回调
  23.   usernameInput:function(e){
  24.     console.log(e.detail)
  25.      this.setData({
  26.       v_username_border:'border-bottom:1px solid red',
  27.      num_current_un:e.detail.value.length
  28.     })
  29.     if(e.detail.value.length!=0){
  30.        this.setData({
  31.         v_float_username:'color:red ;transform: translateY(-18.5px)',
  32.         sp_num_current_un:'color:lightseagreen;'
  33.       })
  34.       if(e.detail.value.length>20){
  35.         this.setData({
  36.           sp_num_current_un:'color:orangered;'
  37.         })
  38.       }
  39.     }else{
  40.       this.setData({
  41.         v_float_username:'transform: translateY(0px)',
  42.       })
  43.     }
  44.   },
  45.   // // 用户名输入框失去焦点时回调
  46.   usernameBlur:function(e){
  47.     console.log("onBlur")
  48.      this.setData({
  49.       v_username_border:'border-bottom:1px solid grey'
  50.     })
  51.   },
  52.   pwdFocus:function(e){
  53.     console.log('onFocus')
  54.   },
  55.   pwdInput:function(e){
  56.     this.setData({
  57.       v_pwd_border:'border-bottom:1px solid red',
  58.       isPwdError:false
  59.     })
  60.     console.log(e.detail)
  61.     if(e.detail.value.length!=0){
  62.       this.setData({
  63.         v_float_pwd:'color:red ; transform: translateY(-18.5px)',
  64.       })
  65.     }else{
  66.       this.setData({
  67.         v_float_pwd:'transform: translateY(0px)',
  68.       })
  69.     }
  70.   },
  71.    pwdBlur:function(e){
  72.     console.log("onBlur")
  73.      this.setData({
  74.       v_pwd_border:'border-bottom:1px solid grey; '
  75.     })
  76.   },
  77. // 登录按钮模拟表单提交  可用form组件代替
  78.   onLogin:function(e){
  79.     this.setData({
  80.       isPwdError:true
  81.     })
  82.   }
  83. })

源码地址https://github.com/jeffer0323/We-MaterialDesign


路过

雷人

握手

鲜花

鸡蛋
原作者: 模板之家 来自: 网络收集

全部回复(0)