废话不多说了,直接给大家贴代码了,具体代码所示:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <title>仿支付宝密码框-移动端测</title> <style type="text/css"> *{ margin: 0; padding: 0; } body { padding: 50px; } .clearfix:after { clear: both; } .clearfix:before, .clearfix:after { content: " "; display: table; } .alieditContainer { position: relative; } .sixDigitPassword { position: absolute; left: -222px; top: 0; width: 1000px; height: 26px; color: #fff; font-size: 12px; -webkit-box-sizing: content-box; box-sizing: content-box; -webkit-user-select: initial; outline: 'none'; z-index: 999; opacity: 0; filter: alpha(opacity=0); } .sixDigitPassword-box { cursor: text; background: #fff; outline: none; position: relative; padding: 8px 0; height: 15px; border: 1px solid #cccccc; border-radius: 2px; } .sixDigitPassword-box i { float: left; display: block; padding: 4px 0; height: 7px; border-left: 1px solid #cccccc; } .sixDigitPassword-box .active { background: url('password-blink.gif') no-repeat center center; } .sixDigitPassword-box b { display: block; margin: 0 auto; width: 7px; height: 7px; overflow: hidden; visibility: hidden; background: url('passeord-dot.png') no-repeat; } .sixDigitPassword-box span { position: absolute; display: block; left: 0px; top: 0px; height: 30px; border: 1px solid rgba(82, 168, 236, .8); border: 1px solid #00ffff\9; border-radius: 2px; visibility: hidden; -webkit-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.75), 0 0 8px rgba(82, 168, 236, 0.6); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); } .ui-securitycore .ui-form-item .ui-form-explain { margin-top: 8px; } .i-block { display: inline-block; } .six-password { position: relative; height: 33px; width: 182px; overflow: hidden; vertical-align: middle; } } </style> </head> <body> <form action="" method="post" name="payPassword" id="form_paypsw"> <div id="payPassword_container" class="alieditContainer clearfix" data-busy="0"> <label for="i_payPassword" class="i-block">支付密码:</label><br /> <div class="i-block" data-error="i_error"> <div class="i-block six-password"> <input class="i-text sixDigitPassword" id="payPassword_rsainput" type="tel" autocomplete="off" required="required" value="" name="payPassword_rsainput" data-role="sixDigitPassword" tabindex="" maxlength="6" minlength="6" aria-required="true"> <div tabindex="0" class="sixDigitPassword-box" style="width: 180px;"> <i style="width: 29px; border-color: transparent;" class=""><b style="visibility: hidden;"></b></i> <i style="width: 29px;"><b style="visibility: hidden;"></b></i> <i style="width: 29px;"><b style="visibility: hidden;"></b></i> <i style="width: 29px;"><b style="visibility: hidden;"></b></i> <i style="width: 29px;"><b style="visibility: hidden;"></b></i> <i style="width: 29px;"><b style="visibility: hidden;"></b></i> <span style="width: 29px; left: 0px; visibility: hidden;" id="cardwrap" data-role="cardwrap"></span> </div> </div> </div> </div> </form> <button class="passBtn" style="margin-top:20px;">确认</button> <script src="../js/jquery-2.1.0.js" type="text/javascript" charset="utf-8"></script> <script src="jquery-validate.js" type="text/javascript"></script> <script type="text/javascript"> var _formPay = $('#form_paypsw'); _formPay.validate({ rules: { 'payPassword_rsainput': { 'minlength': 6, 'maxlength': 6, required: true, digits: true } } }); var payPassword = $("#payPassword_container"), _this = payPassword.find('i'), k = 0, j = 0, password = '', _cardwrap = $('#cardwrap'); //点击隐藏的input密码框,在6个显示的密码框的第一个框显示光标 payPassword.on('focus', "input[name='payPassword_rsainput']", function() { var _this = payPassword.find('i'); if(payPassword.attr('data-busy') === '0') { //在第一个密码框中添加光标样式 _this.eq(k).addClass("active"); _cardwrap.css('visibility', 'visible'); payPassword.attr('data-busy', '1'); } }); //change时去除输入框的高亮,用户再次输入密码时需再次点击 payPassword.on('change', "input[name='payPassword_rsainput']", function() { _cardwrap.css('visibility', 'hidden'); _this.eq(k).removeClass("active"); payPassword.attr('data-busy', '0'); }).on('blur', "input[name='payPassword_rsainput']", function() { _cardwrap.css('visibility', 'hidden'); _this.eq(k).removeClass("active"); payPassword.attr('data-busy', '0'); }); //使用keyup事件,绑定键盘上的数字按键和backspace按键 payPassword.on('keyup', "input[name='payPassword_rsainput']", function(e) { var e = (e) ? e : window.event; //键盘上的数字键按下才可以输入 if(e.keyCode == 8 || (e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105)) { k = this.value.length; //输入框里面的密码长度 l = _this.size(); //6 for(; l--;) { //输入到第几个密码框,第几个密码框就显示高亮和光标(在输入框内有2个数字密码,第三个密码框要显示高亮和光标,之前的显示黑点后面的显示空白,输入和删除都一样) if(l === k) { _this.eq(l).addClass("active"); _this.eq(l).find('b').css('visibility', 'hidden'); } else { _this.eq(l).removeClass("active"); _this.eq(l).find('b').css('visibility', l < k ? 'visible' : 'hidden'); } if(k === 6) { j = 5; } else { j = k; } $('#cardwrap').css('left', j * 30 + 'px'); } } else { //输入其他字符,直接清空 var _val = this.value; this.value = _val.replace(/\D/g, ''); } }); //获取密码 $('.passBtn').on('click', function() { var reg = new RegExp("^[0-9]*$");//验证数字 var pass = $('#payPassword_rsainput').val(); /*PC端测试:主键盘的数字对应的字符对应的keyCode相同,所以也可显示到框中。但是input中value没有数字,判断一下非空即可。 *移动端测试: *和#都可输入,需正则验证一下非法字符 * */ if(!pass){ alert('密码为空,请输入密码'); }else if(pass.length < 6){ alert('密码长度为6位'); }else if(!reg.test(pass)){ alert("密码含有非法字符,请重新输入"); }else{ alert(pass); } }); </script> </body> </html>
需要的资源:
1、jquery-2.1.0.js----版本不限
2、jquery-validate.js----插件
插件代码下载地址:http://xiazai.jb51.net/201709/yuanma/chajian_jb51.rar
效果图:
总结
以上所述是小编给大家介绍的html5仿支付宝密码框的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
2024年11月17日
2024年11月17日
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】