微信小程序之MaterialDesign--input组件详解
发布时间 - 2026-01-10 23:04:04 点击率:次主要通过input输入事件配合css的transform动态改变实现这种效果。

实际调试过程中,input组件bindinput事件触发后回调的detail对象,在模拟器中含有cursor属性,在真机中(测过安卓,ios没测过)却没有该属性,最后选择detail对象中的value属性的值的长度来同步输入的位数。
bindfocus事件最好不要添加改变css的代码 。
预览图片:
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_jb51.rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# 微信小程序
# input组件
# MaterialDesign
# input组件详解
# JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
# 详解微信小程序input标签正则初体验
# 解读input标签的value属性及name属性
# 输入框
# 回调
# 却没有
# 表单
# 大家多多
# 过程中
# 象中
# 应用实例
# 机中
# 中含有
# Page
# app
# getApp
# num_current_un
# var
# data
# border
# v_float_username
# v_float_pwd
# v_pwd_border
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
如何确保西部建站助手FTP传输的安全性?
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法
如何快速使用云服务器搭建个人网站?
北京网站制作公司哪家好一点,北京租房网站有哪些?
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
制作旅游网站html,怎样注册旅游网站?
如何在云主机上快速搭建网站?
Swift中循环语句中的转移语句 break 和 continue
如何挑选高效建站主机与优质域名?
Java解压缩zip - 解压缩多个文件或文件夹实例
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
零基础网站服务器架设实战:轻量应用与域名解析配置指南
实例解析angularjs的filter过滤器
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
Java遍历集合的三种方式
如何在万网利用已有域名快速建站?
iOS发送验证码倒计时应用
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
创业网站制作流程,创业网站可靠吗?
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
Linux系统命令中screen命令详解
Laravel怎么清理缓存_Laravel optimize clear命令详解
Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门
Python图片处理进阶教程_Pillow滤镜与图像增强
Laravel如何处理文件下载请求?(Response示例)
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
如何在阿里云通过域名搭建网站?
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
什么是javascript作用域_全局和局部作用域有什么区别?
微信小程序 input输入框控件详解及实例(多种示例)
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
JS实现鼠标移上去显示图片或微信二维码
高性能网站服务器配置指南:安全稳定与高效建站核心方案
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
香港服务器选型指南:免备案配置与高效建站方案解析
详解阿里云nginx服务器多站点的配置
如何正确下载安装西数主机建站助手?
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
Android利用动画实现背景逐渐变暗

