移动web如何实现类似客户端多方框输入密码功能

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

移动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

下面是实现的样式:

css 代码

.pwd-box{   width:310px;   padding-left: 1px;   position: relative;   border: 1px solid #9f9fa0;   border-radius: 3px;   }   .pwd-box input[type="tel"]{   width: 99%;   height: 45px;   color: transparent;   position: absolute;   top: 0;   left: 0;   border: none;   font-size: 18px;   opacity: 0;   z-index: 1;   letter-spacing: 35px;   }   .fake-box input{   width: 44px;   height: 48px;   border: none;   border-right: 1px solid #e5e5e5;   text-align: center;   font-size: 30px;   }   .fake-box input:nth-last-child(1){   border:none;   }   .pwd-box .pwd-input:focus{//密码框聚焦的时候需要改变其位置,否则IOS上会有闪动的光标~   left:-1000px;   top: -100px;   }  

登录后复制

js 代码

var $input = $(".fake-box input");               $("#pwd-input").on("input", function() {                   var pwd = $(this).val().trim();                   for (var i = 0, len = pwd.length; i = len) {                           $(this).val("");                       }                   });                   if (len == 6) {                       self.sendPackage(pwd);//发送密码                   }               });  

登录后复制

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3119774.html

(0)
上一篇 2025年3月29日 14:37:23
下一篇 2025年3月29日 14:37:32

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 移动web开发能用vue吗

    移动web开发能用vue。Vue是一个开源JavaScript框架,能够开发单页面应用程序;它可以用作Web应用程序框架,旨在简化Web开发。vue支持移动端开发,适合制作移动端的Webapp;其入门成本低、快速上手,可以结合i-view、…

    2025年3月11日 编程技术
    200
  • 使用Java框架开发移动Web应用程序

    使用 java 框架(如 spring boot)开发移动 web 应用程序:1. 选择框架(如 spring boot);2. 添加依赖项;3. 创建控制器;4. 运行应用程序;5. 测试应用程序。实战案例:可以通过 spring boo…

    2025年3月6日
    300

发表回复

登录后才能评论