微信小程序之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 相关文章推荐
禁止JQuery中的load方法装载IE缓存中文件的方法
Sep 11 Javascript
JavaScript学习笔记之获取当前目录的实现代码
Dec 14 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
Jul 17 Javascript
jquery控制左右箭头滚动图片列表的实例
May 20 Javascript
IE6下拉框图层问题探讨及解决
Jan 03 Javascript
jquery 实现回车登录详解及实例代码
Oct 23 Javascript
纯js仿淘宝京东商品放大镜功能
Mar 02 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
Jul 11 Javascript
vue实现前进刷新后退不刷新效果
Jan 26 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
Sep 02 Javascript
nestjs返回给前端数据格式的封装实现
Feb 22 Javascript
js实现弹框效果
Mar 24 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
日本十大惊悚动漫
2020/03/04 日漫
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
2007/04/18 PHP
php读取xml实例代码
2010/01/28 PHP
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
js中for in的用法示例解析
2013/12/25 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
jQuery DOM删除节点操作指南
2015/03/03 Javascript
浅谈json取值(对象和数组)
2016/06/24 Javascript
jQuery Raty 一款不错的星级评分插件
2016/08/24 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
2017/01/01 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
Vue实现购物车场景下的应用
2017/11/27 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
[04:44]显微镜下的DOTA2第二期——你所没有注意到的细节
2014/06/20 DOTA
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
TF-IDF算法解析与Python实现方法详解
2017/11/16 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
pyshp创建shp点文件的方法
2018/12/31 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
工作时间调整通知
2015/04/24 职场文书
2015年采购员工作总结
2015/04/27 职场文书
公司员工培训管理制度
2015/08/04 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书
小学思品教学反思
2016/02/20 职场文书
深入理解MySQL中MVCC与BufferPool缓存机制
2022/05/25 MySQL
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang