实现一个超有趣的 Material-UI 风格 Input 框
最近看到一个组件库叫做 Material-UI,它里面有一个 Input 框的效果非常有意思,效果如下
所以想自己实现一遍,并分享给大家~
这个效果有两个动画点:
- 1、提示文本移动到上分
- 2、下方滑动条
提示文本可以使用绝对定位,将它移动到 input 的上方,并且要跟 input 的 placeholder水平一致
可以先设置 input 的 placeholder,然后慢慢调整 top 定位,直到水平对齐,再去掉 placeholder
至于滑动条,直接放置在容器底部即可~
现在可以得到基础的组件效果
两个动画效果:
- 1、提示文本移动到上分
- 2、下方滑动条
这两个动画效果的触发时机都是:input 框聚焦的时候
所以需要监听 input 的聚焦事件,去触发动画效果,第一个动画效果改动的是top: 1px -> -30px、left: 5px -> 0px,第二个动画效果改动的是width: 0 -> 100%
所以我们需要给这两个节点样式先设置对应样式的 transition
设置好transition就要开始去触发动画效果了,需要监听 input 的聚焦事件
注意:失焦时需要恢复默认样式
现在就能达到我们想要的动画效果了~
有一个小优化点就是,当 input 框有值的时候,提示文本不应该恢复原状,不然就会导致重叠效果,如下
只需要在失焦的时候判断拦截一下即可
HTML DOM INPUT FILE 大文件上传方法
HTML DOM INPUT FILE 大文件上传方法,HTML DOM INPUT FILE 大文件上传技术,HTML DOM INPUT FILE 大文件上传技巧,HTML5大文件上传方案,HTML DOM INPUT FILE 大文件上传组件,HTML5大文件上传API,HTML DOM INPUT FILE 大文件上传函数,INPUT FILE 大文件上传教程,DOM INPUT FILE 大文件上传源码,HTML大文件上传代码,HTML大文件上传分片,HTML大文件上传分段,HTML大文件上传分割,HTML大文件上传切割,HTML大文件上传解决方案,
现在chrome提供了相关的API,在HTML5中也能够上传文件,不过有限制,每个域名限制了5个TCP连接。用起来不是那么的舒服,也不够灵活,当然也能够满足一般的使用场景。不太复杂的也能够凑合着用。
但是如果有上传文件夹,文件夹中包含很多文件,比如1万或者10万,这种场景下用起来就不是那么的舒服了,如果单个文件的大小超过10G,比如20G,这种场景下用起来也不是特别的舒服。
还有批量下载的话HTML5的能力也有限,下是能下,但是每下一个文件就需要用户手动确认一下,那比如我要下载100个文件,也需要确认100次,用户不太接受这种方式。
1.下载示例
https://gitee.com/xproer/up6-vue-cli
将up6组件复制到项目中
示例中已经包含此目录
1.引入up6组件
2.配置接口地址
接口地址分别对应:文件初始化,文件数据上传,文件进度,文件上传完毕,文件删除,文件夹初始化,文件夹删除,文件列表
参考:http://www.ncmem.com/doc/view.aspx?id=e1f49f3e1d4742e19135e00bd41fa3de
3.处理事件
启动测试
启动成功
效果
数据库
微信小程序文本输入<input/> 详解
在微信小程序开发中,input 用来实现文本输入,如输入用户名密码等等
基本效果就是显示了一个文本输入框。
- placeholder 输入框为空时的占位符
- auto-focus 自动聚集,拉起键盘,需要注意的是一个页面中只能有一个 input 标签 或者 textarea 来设置这个属性
bindinput 属性用来绑定键盘输入时的事件监听,也就是可以实时获取输入中的内容 。
当然 在你的处理函数中可以直接 return 一个结果来替换输入框中的内容。
对应的 js
在微信小程序开发中,input 用来实现文本输入,如输入用户名密码等等
基本效果就是显示了一个文本输入框。
- placeholder 输入框为空时的占位符
- auto-focus 自动聚集,拉起键盘,需要注意的是一个页面中只能有一个 input 标签 或者 textarea 来设置这个属性
bindinput 属性用来绑定键盘输入时的事件监听,也就是可以实时获取输入中的内容 。
当然 在你的处理函数中可以直接 return 一个结果来替换输入框中的内容。
对应的 js
效果
应用场景还是比较多的,比如输入结束时 去校验个数据什么的
- bindfocus
- bindblur 输入框焦点移出
- bindconfirm 点击键盘的回车键或者是完成按钮时回调的事件
对应的 js
效果图
- disabled 默认为false 不禁用输入框,为true时是不可输入的
password 默认为 false ,为true时,输入的内容为密码类型
在HTML中,input组件中的type属性可以接收哪些值,有button、text、radio、checkbox、hidden、image、reset、submit等。而在微信小程序中,type属性只有text、number、idcard、digit、time和date。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。