微信小程序之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 相关文章推荐
JavaScript Eval 函数使用
Mar 23 Javascript
WEB高性能开发之疯狂的HTML压缩
Jun 19 Javascript
JQuery验证工具类搜集整理
Jan 16 Javascript
JS实现网页表格自动变大缩小的方法
Mar 09 Javascript
jQuery Mobile框架中的表单组件基础使用教程
May 17 Javascript
bootstrap table表格使用方法详解
Apr 26 Javascript
详解从新建vue项目到引入组件Element的方法
Aug 29 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
Feb 08 Javascript
vue实现a标签点击高亮方法
Mar 17 Javascript
浅析Vue 生命周期
Jun 21 Javascript
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
Apr 04 jQuery
vue实现同时设置多个倒计时
May 20 Vue.js
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
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
Banner程序
2006/10/09 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
php英文单词统计器
2016/06/23 PHP
php连接mysql数据库
2017/03/21 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
2017/10/26 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
2020/05/02 PHP
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
Jquery 实现table样式的设定
2015/01/28 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
利用Node.js检测端口是否被占用的方法
2017/12/07 Javascript
vue 点击展开显示更多(点击收起部分隐藏)
2019/04/09 Javascript
如何使用Javascript中的this关键字
2020/05/28 Javascript
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
对Python 语音识别框架详解
2018/12/24 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
Django用户登录与注册系统的实现示例
2020/06/03 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
TobyDeals美国:在电子产品上获得最好的优惠和折扣
2019/08/11 全球购物
餐饮总经理岗位职责
2014/03/07 职场文书
《小动物过冬》教学反思
2014/04/17 职场文书
安全环保演讲稿
2014/08/28 职场文书
2014年班主任工作总结
2014/11/08 职场文书
医院营销工作计划
2015/01/16 职场文书
初中化学教学反思
2016/02/22 职场文书
Python生成九宫格图片的示例代码
2021/04/14 Python