移动web模拟客户端实现多方框输入密码效果【附代码】


Posted in HTML / CSS onMarch 25, 2016

不知道怎么描述标题,先看截图吧,大致的效果就是一个框输入一位密码。

移动web模拟客户端实现多方框输入密码效果【附代码】

最开始实现的思路是一个小方框就是一个type为password的input,每输入一位自动跳到下一位,删除一位就自动跳到前一位,android上是OK的,很平滑也没有bug,但是ios上会出现键盘频繁调起和关闭,非常影响用户体验。原因估计是每个input会不断的focus和blur,每次focus会调起键盘,blur又会关闭键盘,so....此方案肯定不行了。

PM非要实现这种效果,木有办法~拗不过,一句用户体验不好会让你没话说,谁要咱是前端呢~拗不过就找解决方案吧。

既然多个是频繁focus和blur导致的问题,又必须是密码框,那何不就用一个input框来输入呢,小方框就用别的方式模拟,开干。这是最后的效果:http://jsbin.com/neqesiqogu/edit?html,css,js,output

下面是实现的样式:

JavaScript Code复制内容到剪贴板
  1. .pwd-box{   
  2. width:310px;   
  3. padding-left: 1px;   
  4. position: relative;   
  5. border: 1px solid #9f9fa0;   
  6. border-radius: 3px;   
  7. }   
  8. .pwd-box input[type="tel"]{   
  9. width: 99%;   
  10. height: 45px;   
  11. color: transparent;   
  12. position: absolute;   
  13. top: 0;   
  14. left: 0;   
  15. border: none;   
  16. font-size: 18px;   
  17. opacity: 0;   
  18. z-index: 1;   
  19. letter-spacing: 35px;   
  20. }   
  21. .fake-box input{   
  22. width: 44px;   
  23. height: 48px;   
  24. border: none;   
  25. border-right: 1px solid #e5e5e5;   
  26. text-align: center;   
  27. font-size: 30px;   
  28. }   
  29. .fake-box input:nth-last-child(1){   
  30. border:none;   
  31. }   
  32. .pwd-box .pwd-input:focus{//密码框聚焦的时候需要改变其位置,否则IOS上会有闪动的光标~   
  33. left:-1000px;   
  34. top: -100px;   
  35. }  
JavaScript Code复制内容到剪贴板
  1. var $input = $(".fake-box input");   
  2.             $("#pwd-input").on("input"function() {   
  3.                 var pwd = $(this).val().trim();   
  4.                 for (var i = 0, len = pwd.length; i < len; i++) {   
  5.                     $input.eq("" + i + "").val(pwd[i]);   
  6.                 }   
  7.                 $input.each(function() {   
  8.                     var index = $(this).index();   
  9.                     if (index >= len) {   
  10.                         $(this).val("");   
  11.                     }   
  12.                 });   
  13.                 if (len == 6) {   
  14.                     self.sendPackage(pwd);//发送密码   
  15.                 }   
  16.             });  

大致的思路就是动态监听真实密码框的输入修改小方框内密码框的内容。

其实效果实现不难,关键是思路还有解决该死的兼容,完成该效果的时候IOS会有闪动的光标,android没有,然后找一系列方法去隐藏光标,比如focus时候设置text-indent,color设置transparent等等,但都无济于事,后来发现淘宝有个办法是focus时候把密码框丢到一边去,因为外层有overflow hidden,完美解决了问题~

以上这篇移动web模拟客户端实现多方框输入密码效果【附代码】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

原文地址:http://www.cnblogs.com/hutuzhu/p/5000024.html

HTML / CSS 相关文章推荐
CSS3悬停效果案例应用
Nov 21 HTML / CSS
css3弹性盒模型实例介绍
May 27 HTML / CSS
CSS3圆角边框和边界图片效果实例
Jul 01 HTML / CSS
在HTML5 canvas里用卷积核进行图像处理的方法
May 02 HTML / CSS
Html5实现单张、多张图片上传功能
Apr 28 HTML / CSS
canvas学习笔记之绘制简单路径
Jan 28 HTML / CSS
有关HTML5中背景音乐的自动播放功能
Oct 16 HTML / CSS
HTML5超炫酷粒子效果的进度条的实现示例
Aug 23 HTML / CSS
HTML table 表格边框的实现思路
Oct 12 HTML / CSS
HTML5 层的叠加的实现
Jul 07 HTML / CSS
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
Nov 11 HTML / CSS
使用CSS实现音波加载效果
May 07 HTML / CSS
HTML5打开本地app应用的方法
Mar 31 #HTML / CSS
如何在网站上添加谷歌定位信息
Apr 16 #HTML / CSS
HTML5中使用postMessage实现Ajax跨域请求的方法
Apr 19 #HTML / CSS
HTML5的Geolocation地理位置定位API使用教程
May 12 #HTML / CSS
HTML5的video标签的浏览器兼容性增强方案分享
May 19 #HTML / CSS
HTML5中的postMessage API基本使用教程
May 20 #HTML / CSS
浅谈HTML5 defer和async的区别
Jun 07 #HTML / CSS
You might like
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
用PHP来计算某个目录大小的方法
2014/04/01 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
PHP正则表达式笔记与实例详解
2019/05/09 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
JQuery与Ajax调用新浪API获取短网址的代码
2014/02/07 Javascript
js如何打印object对象
2015/10/16 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
JavaScript拖动层Div代码
2017/03/01 Javascript
Vue.js组件tab实现选项卡切换
2020/03/23 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
为什么我们要做三份 Webpack 配置文件
2017/09/18 Javascript
Vue axios设置访问基础路径方法
2018/09/19 Javascript
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
2020/10/20 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
解决Django模板无法使用perms变量问题的方法
2017/09/10 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
Python 日志logging模块用法简单示例
2019/10/18 Python
python重要函数eval多种用法解析
2020/01/14 Python
基于python实现FTP文件上传与下载操作(ftp&amp;sftp协议)
2020/04/01 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
2020/07/03 Python
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
信息专业本科生个人的自我评价
2013/10/28 职场文书
给朋友的道歉信
2014/01/09 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
道歉信怎么写
2015/05/12 职场文书
新手开公司创业注意事项有哪些?
2019/07/29 职场文书