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

 更新时间:2017年02月15日 10:46:06   作者:扶桑木下  
本篇文章主要介绍了微信小程序之MaterialDesign--input组件详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

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

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

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

预览图片:

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_jb51.rar

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

相关文章

  • JavaScript组合继承详解

    JavaScript组合继承详解

    这篇文章主要介绍了JavaScript组合继承,下面文章将围绕了JavaScript组合继承的相关资料展开详细内容,需要的小伙伴可以参考一下,希望对你有所帮助
    2021-11-11
  • js实现兔年转圈圈动画示例

    js实现兔年转圈圈动画示例

    这篇文章主要为大家介绍了js实现兔年转圈圈动画示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • 无UI 组件Headless框架逻辑原理用法示例详解

    无UI 组件Headless框架逻辑原理用法示例详解

    这篇文章主要为大家介绍了无UI 组件Headless框架逻辑原理用法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Fabric.js 监听元素是否相交重叠

    Fabric.js 监听元素是否相交重叠

    这篇文章主要为大家介绍了Fabric.js 监听元素是否相交重叠的方案示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 如何利用javascript做简单的算法

    如何利用javascript做简单的算法

    这篇文章主要介绍了如何利用javascript做简单的算法,主要是以提问的形式犹如练习小例子然后解决问题并附代码说明,需要的朋友可以参考一下
    2021-11-11
  • 微信小程序 wx.request方法的异步封装实例详解

    微信小程序 wx.request方法的异步封装实例详解

    这篇文章主要介绍了微信小程序 wx.request方法的异步封装实例详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • 如何编写高质量 JavaScript 代码

    如何编写高质量 JavaScript 代码

    如果要编写出高质量的 JavaScript 代码,可以从以下三个方面去考虑。分别是:易阅读的代码、高性能的代码、健壮性的代码。下面我将分别对这三个方面进行阐述。需要的朋友可以参考一下
    2021-09-09
  • vscode工具函数once使用示例深入剖析

    vscode工具函数once使用示例深入剖析

    这篇文章主要为大家介绍了vscode工具函数once使用示例深入剖析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • JavaScript原型链中函数和对象的理解

    JavaScript原型链中函数和对象的理解

    这篇文章主要为大家介绍了JavaScript原型链中函数和对象的理解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 微信小程序之数据双向绑定与数据操作

    微信小程序之数据双向绑定与数据操作

    这篇文章主要介绍了微信小程序之数据双向绑定与数据操作的相关资料,需要的朋友可以参考下
    2017-05-05

最新评论