javascript - 支付宝的支付密码输入框该如何做?
巴扎黑
巴扎黑 2017-04-10 18:10:53
[JavaScript讨论组]

如图,怎么用html、css、js来实现这种输入框?

巴扎黑
巴扎黑

全部回复(5)
ringa_lee

后面的线可以作为背景图片。。。。输入的时候控制字符间距

天蓬老师

想到三个方法:
一:用背景图片来做,在整个input后面加个背景(包含那个线),然后设置input的css的 letter-space 来调整字符之间的间距。
二:在包含输入框的外层容器内加一个p,在里面做处理之后吧她绝对定位到input的下层。
三:把一个输入框拆成6个,然后设置border-right,在拼装起来

巴扎黑

先看效果吧:只能输入数字,输入字母会有弹窗提示

在线点这里
讲一下我的思路:
布局上

  1. 这几个输入框我用的是span模拟的,把正在输入的项的contenteditable属性设为true

  2. 输入过的项的内容都变成小黑点,这里我用的是伪元素来模拟黑点,并绝对定位到正中心

  3. 每个小输入框都设置box-sizing:border-box,计算好边框的宽度和盒子的高度
    js

其实主要就是有两点:

  1. 设置activeIndex,代表正在聚焦的项的位置

  2. 输入密码,判断是否是数字,activeIndex++

  3. 存储输入过的数字,然后切换到下一个输入框,把下一个输入框变成可输入,其他的均不可输入

  4. 上一个输入过的添加伪类circle,输入过的变成小黑点

  5. 判断边界值,到达边界后,keyup事件不再执行任何函数

  6. 删除的时候,activeIndex--,存储的数据中删除此项,
    注意:在火狐浏览器中,按下backspace键也会激发keypress事件,所以在keypress中我们要判断下keyCode

怪我咯

IE下面也不行,IE不支持addEventListener

PHPz

在IOS上有问题,光标一直不动。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号