微信小程序之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 相关文章推荐
js Date自定义函数 延迟脚本执行
Mar 10 Javascript
jquery用data方法获取某个元素上的事件
Jun 23 Javascript
JS通过Cookie判断页面是否为首次打开
Feb 05 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
Aug 24 Javascript
jquery心形点赞关注效果的简单实现
Nov 14 Javascript
几种tab切换详解
Feb 03 Javascript
JavaScript中数组Array方法详解
Feb 27 Javascript
基于twbsPagination.js分页插件使用心得(分享)
Oct 21 Javascript
浅谈React Event实现原理
Sep 20 Javascript
详解React之key的使用和实践
Sep 29 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
Apr 23 Javascript
解决layui的radio属性或别的属性没显示出来的问题
Sep 26 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
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
php实现微信发红包
2015/12/05 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
2017/11/20 PHP
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
原生JS实现移动端web轮播图详解(结合Tween算法造轮子)
2017/09/10 Javascript
vue axios 在页面切换时中断请求方法 ajax
2018/03/05 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
React中使用async validator进行表单验证的实例代码
2018/08/17 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
python使用递归解决全排列数字示例
2014/02/11 Python
Django admin实现图书管理系统菜鸟级教程完整实例
2017/12/12 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
详解Python最长公共子串和最长公共子序列的实现
2018/07/07 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
对Python _取log的几种方式小结
2019/07/25 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
2020/01/14 Python
纯CSS3实现自定义Tooltip边框涂鸦风格的教程
2014/11/05 HTML / CSS
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
Linux上比较文件的命令都有哪些
2012/02/24 面试题
石油大学毕业生自荐信
2014/01/28 职场文书
公司贷款承诺书
2014/05/30 职场文书
党员应该树立反腐倡廉的坚定意识思想汇报
2014/09/12 职场文书
股权转让协议范本
2014/12/07 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
离婚被告代理词
2015/05/23 职场文书
未婚证明格式
2015/06/15 职场文书
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL