移动web模拟客户端实现多方框输入密码效果【附代码】_html5教程技巧
不知道怎么描述标题,先看截图吧,大致的效果就是一个框输入一位密码。
最开始实现的思路是一个小方框就是一个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
下面是实现的样式:
- .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;
- }
- var $input = $(".fake-box input");
- $("#pwd-input").on("input", function() {
- var pwd = $(this).val().trim();
- for (var i = 0, len = pwd.length; i
- $input.eq("" + i + "").val(pwd[i]);
- }
- $input.each(function() {
- var index = $(this).index();
- if (index >= len) {
- $(this).val("");
- }
- });
- if (len == 6) {
- self.sendPackage(pwd);//发送密码
- }
- });
大致的思路就是动态监听真实密码框的输入修改小方框内密码框的内容。
其实效果实现不难,关键是思路还有解决该死的兼容,完成该效果的时候IOS会有闪动的光标,android没有,然后找一系列方法去隐藏光标,比如focus时候设置text-indent,color设置transparent等等,但都无济于事,后来发现淘宝有个办法是focus时候把密码框丢到一边去,因为外层有overflow hidden,完美解决了问题~
以上这篇移动web模拟客户端实现多方框输入密码效果【附代码】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题
![VMware Horizon Client无法打开[修复]](https://img.php.cn/upload/article/000/887/227/170835607042441.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
VMwareHorizon客户端可帮助您便捷地访问虚拟桌面。然而,有时虚拟桌面基础设施可能会遇到启动问题。本文将讨论当VMwareHorizon客户端未能成功启动时,您可以采取的解决方法。为什么我的VMwareHorizon客户端无法打开?在配置VDI时,如果未打开VMWareHorizon客户端,可能会出现错误。请确认您的IT管理员提供了正确的URL和凭据。如果一切正常,请按照本指南中提到的解决方案解决问题。修复未打开的VMWareHorizon客户端如果您的Windows计算机上未打开VMW
![VMware Horizon客户端在连接时冻结或停滞[修复]](https://img.php.cn/upload/article/000/887/227/170942987315391.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
在使用VMWareHorizon客户端连接到VDI时,我们可能会遇到应用程序在身份验证过程中冻结或连接阻塞的情况。本文将探讨这个问题,并提供解决这种情况的方法。当VMWareHorizon客户端出现冻结或连接问题时,您可以采取一些措施来解决这一问题。修复VMWareHorizon客户端在连接时冻结或卡住如果VMWareHorizon客户端在Windows11/10上冻结或无法连接,请执行下面提到的解决方案:检查网络连接重新启动Horizon客户端检查Horizon服务器状态清除客户端缓存修复Ho

MQTT(MessageQueuingTelemetryTransport)是一种轻量级的消息传输协议,通常用于物联网设备之间的通信。PHP是一种常用的服务器端编程语言,可以用来开发MQTT客户端。本文将介绍如何使用PHP开发MQTT客户端,并包含以下内容:MQTT协议的基本概念PHPMQTT客户端库的选取和使用实例:使用PHPMQTT客户端发布和

很多朋友下载文件会先在网页上浏览,然后转入客户端下载。但有时用户会遇到百度网盘网页无法启动客户端的问题。针对这个问题,小编为大家准备了百度网盘网页无法启动客户端的解决办法,有需要的小伙伴可以参考一下哦。 解决办法 1、可能百度网盘不是最新版,手动打开百度网盘客户端,点击右上角的设置按钮,再点击版本升级。 如无更新,则会有如下提示,若有更新,请按照提示进行更新。 2、可能禁用了百度网盘的检测服务程序 有可能使我们自己手动或者使用安全软件自动禁用了百度网盘的检测服务程序。 请查看一下

手机客户端是指一种在智能手机上运行的应用程序,通过原生客户端或Web客户端的形式为用户提供各种功能和服务。手机客户端可以分为原客户端和Web客户端两种形式,原生客户端是指使用特定编程语言和开发工具,为特定的操作系统编写的应用程序,Web客户端的优势在于跨平台兼容性好,可以不受操作系统限制在不同设备上运行,但相对于原生客户端,Web客户端的性能和用户体验可能有所降低。

如何在PHP中编写FTP客户端一、引言FTP(文件传输协议)是一种用于在网络上进行文件传输的协议。在Web开发中,我们常常需要通过FTP来上传或下载文件。PHP作为一种流行的服务器端语言,提供了强大的FTP功能,使我们可以方便地编写FTP客户端。本文将介绍如何使用PHP编写一个简单的FTP客户端,并提供代码示例。二、连接FTP服务器在PHP中,我们可以使用f

部分Win11使用者察觉他们的个人电脑中出现了一些软件图标旁边出现防盾标志的现象。通过此举保障计算机系统乃至其中存储的重要信息和资料免受侵害。如果你不喜欢的话,那么可以通过下面的方法来解决。win11客户端上面的盾牌标志怎么去除1、右键电脑上的任务栏,然后选择“任务管理器”2、再点击上面的“启动”3、在这里找到“Windowsdefender”然后右键选择“禁止”,然后重启电脑就可以了。

如果客户端与服务器均未实现SSL加密技术,极易造成信息在传播过程中遭受中间攻击者的窃取,从而引发严重危害数据安全之隐患。为此,应紧急采取相应措施以有效保障敏感数据安全,可以参考下面的方法来进行操作。win11客户端和服务器不支持常用的ssl1、对服务器系统进行升级改造可以优先考虑对服务器系统进行升级与优化,或者补充所需的必要组件,以确保其能够顺利地支持最新的SSL协议。2、部署SSL证书您可以选购以及部署那些享有盛誉的认证中心发布的SSL证书,将其安装于服务器内即可实现此功能。3、开启SSL协议
