微信小程序之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 相关文章推荐
lyhucSelect基于Jquery的Select数据联动插件
Mar 29 Javascript
JS trim去空格的最佳实践
Oct 30 Javascript
讨论html与javascript在浏览器中的加载顺序问题
Nov 27 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
Apr 11 Javascript
jquery获取选中的文本和值的方法
Jul 08 Javascript
jQuery实现多按钮单击变色
Nov 27 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
Aug 02 Javascript
jquery实现网站列表切换效果的2种方法
Aug 12 Javascript
jQuery层级选择器实例代码
Feb 06 Javascript
基于构造函数的五种继承方法小结
Jul 27 Javascript
Vue中插入HTML代码的方法
Sep 21 Javascript
带你使用webpack快速构建web项目的方法
Nov 12 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
第十一节--重载
2006/11/16 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
smarty高级特性之过滤器的使用方法
2015/12/25 PHP
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
Jquery获取复选框被选中值的简单方法
2013/07/04 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
在ABP框架中使用BootstrapTable组件的方法
2017/07/31 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
JavaScript反射与依赖注入实例详解
2018/05/29 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
跟老齐学Python之类的细节
2014/10/13 Python
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
Python实现针对中文排序的方法
2017/05/09 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
python 绘制拟合曲线并加指定点标识的实现
2019/07/10 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
Django实现将views.py中的数据传递到前端html页面,并展示
2020/03/16 Python
小 200 行 Python 代码制作一个换脸程序
2020/05/12 Python
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
小学校园之星事迹材料
2014/05/16 职场文书
技术经济专业求职信
2014/09/03 职场文书
四风问题个人对照检查材料
2014/09/26 职场文书
员工家属慰问信
2015/03/24 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
go语言中fallthrough的用法说明
2021/05/06 Golang
python四种出行路线规划的实现
2021/06/23 Python
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby