微信小程序之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 相关文章推荐
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
Jan 29 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
Jan 26 Javascript
JS获取屏幕高度的简单实现代码
May 24 Javascript
js修改onclick动作的四种方法(推荐)
Aug 18 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
Oct 31 Javascript
说说AngularJS中的$parse和$eval的用法
Sep 14 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
Nov 11 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
Jan 04 Javascript
JS简单获取并修改input文本框内容的方法示例
Apr 08 Javascript
基于js判断浏览器是否支持webGL
Apr 18 Javascript
JavaScript 装逼指南(js另类写法)
May 10 Javascript
vue axios请求成功却进入catch的原因分析
Sep 08 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
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
PHP反射API示例分享
2016/10/08 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
防止按钮在短时间内被多次点击的方法
2014/03/10 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
JS简单设置下拉选择框默认值的方法
2016/08/20 Javascript
微信小程序 wx.request(object) API详解及实例代码
2016/09/30 Javascript
KnockoutJS 3.X API 第四章之click绑定
2016/10/10 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
Vue + Vue-router 同名路由切换数据不更新的方法
2017/11/20 Javascript
浅谈Webpack多页应用HMR卡住问题
2019/04/24 Javascript
Node.js path模块,获取文件后缀名操作
2020/11/07 Javascript
[47:20]DAC2018 4.4 淘汰赛 Optic vs Mineski 第一场
2018/04/05 DOTA
Python实现mysql数据库更新表数据接口的功能
2017/11/19 Python
Python中的函数作用域
2018/05/07 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
Python rstrip()方法实例详解
2018/11/11 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
python多线程http压力测试脚本
2019/06/25 Python
利用Python计算KS的实例详解
2020/03/03 Python
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
捷克浴室和厨房设备购物网站:SIKO
2018/08/11 全球购物
澳大利亚在线家具、灯饰和家居装饰店:LivingStyles
2018/11/20 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
办公室主任岗位职责
2013/11/08 职场文书
如何写一份好的自荐信
2014/01/02 职场文书
中秋客户感谢信
2015/01/22 职场文书
结婚十年感言
2015/07/31 职场文书
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle
vue+iview实现手机号分段输入框
2022/03/25 Vue.js