jQuery仿移动端支付宝键盘的实现代码


Posted in jQuery onAugust 15, 2018

最近做项目时碰到一个需求,就是在移动端支付页面点击支付按钮弹出一个支付键盘,类似于支付宝的那种。由于项目只是单纯的手机网站,而并非app,所以这个功能得由前端来实现。话不多说,先上图看看效果。

jQuery仿移动端支付宝键盘的实现代码

尼玛,这不就是支付宝app那个支付键盘吗? 没错,咱们UI就是参照支付宝做的这个键盘。你可能会问,为什么不直接调用支付宝提供的支付接口呢。额,因为项目需要,这里就不多解释了。

我们先看一下实现后的效果图

jQuery仿移动端支付宝键盘的实现代码jQuery仿移动端支付宝键盘的实现代码jQuery仿移动端支付宝键盘的实现代码

HTML部分

<!-- 支付键盘 -->
  <divclass="pay-container">
    <divclass="pay-title">
      <spanclass="pay-title-remove">×</span>
      输入支付密码
    </div>
    <divclass="pay-body">
      <divclass="input-container">
        <inputclass="input-item"type="password"readonly>
        <inputclass="input-item"type="password"readonly>
        <inputclass="input-item"type="password"readonly>
        <inputclass="input-item"type="password"readonly>
        <inputclass="input-item"type="password"readonly>
        <inputclass="input-item"type="password"readonly>
      </div>
      <divclass="forgetPwd-container">
        <aclass="forgetPwd"href="">忘记密码?</a>
      </div>
      <divclass="key-container">
        <divclass="key-item">1</div>
        <divclass="key-item">2</div>
        <divclass="key-item">3</div>
        <divclass="key-item">4</div>
        <divclass="key-item">5</div>
        <divclass="key-item">6</div>
        <divclass="key-item">7</div>
        <divclass="key-item">8</div>
        <divclass="key-item">9</div>
        <divclass="key-item empty"></div>
        <divclass="key-item">0</div>
        <divclass="key-item remove"></div>
      </div>
    </div>
  </div>

CSS部分

.pay-container{ width:7.5rem; height:8rem; background-color:#fbf9fb; position:fixed;z-index:999; overflow:hidden;display:none; }
/* .pay-container-show{transform: translate3d(0, -8.9rem, 0);transition: 0.5s ease;transform: translate3d(0, 0, 0); transition: 0.5s ease;} */
.pay-title{ height:0.96rem; line-height:0.96rem; border-bottom:1pxsolid#b3afaf; text-align:center; color:#070707;
position:relative; font-size:0.36rem;}
.pay-title.pay-title-remove{ width:0.24rem; height:0.24rem; position:absolute; top:0.35rem; left:0.33rem; line-height:0.28rem;
font-size:0.45rem;}
.pay-body{ padding-top:0.56rem;position:relative; height:7rem; box-sizing:border-box;}
.pay-body.input-container{ width:6.74rem; height:0.93rem; border:1pxsolid#ebe8eb; overflow:hidden; border-radius:5px;
background-color:#fff; margin:0auto; display:flex;flex-direction:row;align-items:center; 
flex-wrap:wrap; justify-content:center;align-content:center;}
.pay-body.input-container.input-item{ width:1.1rem; height:0.92rem; display:inline-block; margin:0; border-right:1pxsolid#ebe8eb;
text-align:center; line-height:0.92rem; border-radius:0; }
.pay-body.input-container.input-item:nth-last-child(1){ border-right:0;}
.pay-body.forgetPwd-container{width:6.74rem;margin:0.22remauto0; text-align:right;}
.pay-body.forgetPwd-container.forgetPwd{ color:#52bfff; font-size:0.24rem; }
.pay-body.key-container{ width:100%; height:4.56rem; position:absolute; bottom:0; display:flex;flex-direction:row;align-items:center; 
  flex-wrap:wrap; justify-content:center;align-content:center; }
.pay-body.key-container.key-item{ width:2.47rem; height:1.12rem; line-height:1.12rem; text-align:center; border-right:2pxsolid#f3f3f3;
  border-top:2pxsolid#f3f3f3; font-size:0.66rem; color:#1e1d1f;background-color:#fff;}
.pay-body.key-container.key-item:nth-child(3),
.pay-body.key-container.key-item:nth-child(6),
.pay-body.key-container.key-item:nth-child(9),
.pay-body.key-container.key-item:nth-child(12){ border-right:0;}
.pay-body.key-container.key-item.remove,.pay-body.key-container.key-item.empty{ font-size:0.24rem;background-color:#e6e9f1;}
.pay-body.key-container.key-item.remove{ background:url('../images/pay-remove.png') centerno-repeat#e6e9f1; background-size:.52rem.32rem; }
.pay-body.key-container.selected{ background-color:#e4e8f4;}

核心JS部分

var arr = [];
    var num =0;

    //响应键盘事件
    $('.key-item').on('touchstart', function () {
      $(this).addClass('selected')
    })
    $('.key-item').on('touchend', function () {
      $(this).removeClass('selected')
    })
    $('.key-item').on('click', function () {
      var value =$(this).text();
      var inputItem =$('.layui-m-layercont .input-item');
      if (!$(this).hasClass('remove')) {
        if (num <6) {
          $(inputItem[num]).val(value);
          if (num ==5) {
            var arr = [];
            for (var i =0; i < inputItem.length; i++) {
              arr.push(inputItem[i].value)
            }
            arr =parseInt(arr.join(''));
            if (arr !==123456) {
              layer.open({
                content:'支付密码错误请重新输入!',
                skin:'msg',
                time:2//2秒后自动关闭
              });
            } else {
              layer.open({
                content:'输入正确!',
                skin:'msg',
                time:2//2秒后自动关闭
              });
            }
            num++;
            returnfalse;
          }
          num++;
        }
      } else {
        if (num >0) {
          num--;
          $(inputItem[num]).val('');
        }
      }
    })

总结

以上所述是小编给大家介绍的jQuery仿移动端支付宝键盘的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
jquery Ajax实现Select动态添加数据
Jun 08 jQuery
关于jquery form表单序列化的注意事项详解
Aug 01 jQuery
基于jQuery实现Ajax验证用户名是否可用实例
Mar 25 jQuery
jQuery实现导航样式布局操作示例【可自定义样式布局】
Jul 24 jQuery
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
jQuery实现的记住帐号密码功能完整示例
Aug 03 jQuery
JQuery样式与属性设置方法分析
Dec 07 jQuery
基于jQuery实现可编辑的表格
Dec 11 jQuery
jquery实现图片无缝滚动 蒙版遮蔽效果
Jan 11 jQuery
jquery制作的移动端购物车效果完整示例
Feb 24 jQuery
jQuery实现可以扩展的日历
Dec 01 jQuery
jquery实现图片放大镜效果
Dec 23 jQuery
jQuery实现的简单拖拽功能示例【测试可用】
Aug 14 #jQuery
jQuery+CSS实现的标签页效果示例【测试可用】
Aug 14 #jQuery
JQuery通过后台获取数据遍历到前台的方法
Aug 13 #jQuery
jQuery实现图片简单轮播功能示例
Aug 13 #jQuery
jQuery模拟12306城市选择框功能简单实现方法示例
Aug 13 #jQuery
jQuery中$原理实例分析
Aug 13 #jQuery
深入浅析angular和vue还有jquery的区别
Aug 13 #jQuery
You might like
apache和PHP如何整合在一起
2015/10/12 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
2015/08/22 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
2016/12/19 Javascript
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
2017/08/10 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
使用python实现拉钩网上的FizzBuzzWhizz问题示例
2014/05/05 Python
Python中的pass语句使用方法讲解
2015/05/14 Python
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
django上传图片并生成缩略图方法示例
2017/12/11 Python
Python格式化日期时间操作示例
2018/06/28 Python
Flask框架web开发之零基础入门
2018/12/10 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
基于Python实现下载网易音乐代码实例
2020/08/10 Python
Django与AJAX实现网页动态数据显示的示例代码
2021/02/24 Python
为什么要优先使用同步代码块而不是同步方法?
2013/01/30 面试题
优秀毕业大学生推荐信
2013/11/13 职场文书
实习心得体会
2014/01/02 职场文书
大学毕业感言
2014/01/10 职场文书
全国道德模范事迹
2014/02/01 职场文书
转预备党员政审材料
2014/02/06 职场文书
铲车司机岗位职责
2014/03/15 职场文书
机电一体化专业毕业生自荐信
2014/06/19 职场文书
超市理货员岗位职责
2014/07/04 职场文书
2014年师德师风自我剖析材料
2014/09/27 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
莫言获奖感言(全文)
2015/07/31 职场文书
小学数学教学随笔
2015/08/14 职场文书
《金色的草地》教学反思
2016/02/17 职场文书
深入理解Pytorch微调torchvision模型
2021/11/11 Python
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫