0

    Jquery+javascript动态生成支付网页数字键盘

    2023.07.22 | admin | 141次围观

    Jquery+javascript动态生成支付网页数字键盘

    制作网页支付界面的时候,数字键盘适配不同的屏幕宽高比是一个很麻烦的事,所以我制作了一个根据屏幕宽高动态生成的数字键盘

    运行截图:

    实现代码 html:

    
    <html>
    <head>
        <meta charset="utf-8">
        <meta content="initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport">
        <meta content="yes" name="apple-mobile-web-app-capable">
        <meta content="black" name="apple-mobile-web-app-status-bar-style">
        <meta content="telephone=no" name="format-detection">
        <meta content="email=no" name="format-detection">
        <link rel="stylesheet" href="{{你的css文件路径}}">
        <title>动态数字键盘title>
    head>
    <body>
        <div class="pay-top">
            <img class="lklogo" src="img/lianke.png">
            <div class="pay-shop-info">
                <span class="shop-name">付款给:{{付款对象名}}span>
            div>
            <div class="paymoneylogo">
                <span>span>
            div>
            <label class="inputlabel" id="paymoney" type="text">label>
        div>
        <div class="payinfo">
            <table cellspacing="0" cellpadding="0">
                <tr>
                    <td class="paynum">1td>
                    <td class="paynum">2td>
                    <td class="paynum">3td>
                    <td id="pay-return">
                        <div class="keybord-return">div>
                    td>
                tr>
                <tr>
                    <td class="paynum">4td>
                    <td class="paynum">5td>
                    <td class="paynum">6td>
                    <td rowspan="3" class="pay">
                        <a href="javascript:return false;">
                            <div class="a-pay">
                                <p>确认p>
                                <p>支付p>
                            div>
                        a>
                    td>
                tr>
                <tr>
                    <td class="paynum">7td>
                    <td class="paynum">8td>
                    <td class="paynum">9td>
                tr>
                <tr>
                    <td id="pay-zero" colspan="2" class="payzero">0td>
                    <td id="pay-float">.td>
                tr>
            table>
        div>
    body>
    <script src="./js/jquery.js">script>
    <script type="text/javascript">
        $(function () {
            $(".payinfo").slideDown();
            var $paymoney = $("#paymoney");
            $("#paymoney").focus(function () {
                $(".payinfo").slideDown();
                document.activeElement.blur();
            });
            $(".paynum").each(function () {
                $(this).click(function () {
                    if (($paymoney.text()).indexOf(".") != -1 && ($paymoney.text()).substring(($paymoney.text()).indexOf(".") + 1, ($paymoney.text()).length).length == 2) {
                        return;
                    }
                    if ($.trim($paymoney.text()) == "0") {
                        return;
                    }
                    if (parseInt($paymoney.text()) > 10000 && $paymoney.text().indexOf(".") == -1) {
                        return;
                    }
                    $paymoney.text($paymoney.text() + $(this).text());
                });
            });
            $("#pay-return").click(function () {
                $paymoney.text(($paymoney.text()).substring(0, ($paymoney.text()).length - 1));
                if (!$paymoney.text()) {
                    $('.pay').addClass('pay-disabled').find('a').attr('href', 'javascript:return false;');
                }
            });
            $("#pay-zero").click(function () {
                if (($paymoney.text()).indexOf(".") != -1 && ($paymoney.text()).substring(($paymoney.text()).indexOf(".") + 1, ($paymoney.text()).length).length == 2) {
                    return;
                }
                if ($.trim($paymoney.text()) == "0") {
                    return;
                }
                if (parseInt($paymoney.text()) > 10000 && $paymoney.text().indexOf(".") == -1) {
                    return;
                }
                $paymoney.text($paymoney.text() + $(this).text());
            });
            $("#pay-float").click(function () {
                if ($.trim($paymoney.text()) == "") {
                    return;
                }
                if (($paymoney.text()).indexOf(".") != -1) {
                    return;
                }
                if (($paymoney.text()).indexOf(".") != -1) {
                    return;
                }
                $paymoney.text($paymoney.text() + $(this).text());
            });
            $('.pay').click(function () {
                alert("支付金额为"+$paymoney.text())
            });
        })
    script> 
    
    <script>
    	(function () {
    		var designW = 750;  //设计稿宽
    		var font_rate = 100;
    		//适配
    		document.getElementsByTagName("html")[0].style.fontSize = document.body.offsetWidth / designW * font_rate + "px";
    		document.getElementsByTagName("body")[0].style.fontSize = document.body.offsetWidth / designW * font_rate + "px";
    		//监测窗口大小变化
    		window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", function () {
    			document.getElementsByTagName("html")[0].style.fontSize = document.body.offsetWidth / designW * font_rate + "px";
    			document.getElementsByTagName("body")[0].style.fontSize = document.body.offsetWidth / designW * font_rate + "px";
    		}, false);
    	})();
    script>
    html>
    

    css

    @CHARSET "UTF-8";
    html,body{
    	background-color:#fff;
    }
    .pay-top{
    	position: absolute;
    	width: 100%;
    	height:60%;
        background: #fff;
    }
    .pay-shop-info {
    	position: absolute;
        width: 90%;
    	left:5%;
    	text-align: right;
    	top:3.4rem;
        font-size:0.3rem ;
    	}
    .paymoneylogo {
    	position: absolute;
        width: 90%;
    	left:5%;
    	top:4rem;
        height: 1.3rem;
        border-bottom: 0.02rem solid #bfbfbf;
        -webkit-border-radius: 0.02rem;
        -moz-border-radius: 0.02rem;
        border-radius: 0.02rem;
        background: #fff;
    }
    .inputlabel{
    	position: absolute;
    	width: 90%;
    	left:5%;
    	top:4rem;
    	height: 1.3rem;
    	text-align: right;
    }
    .lklogo{
    	position: absolute;
    	height: 1.2rem;
    	width: 50%;
    	left:25%;
    	top:0.8rem;
    }
    .payinfo{
    	display:none;
    }
    .payinfo .paynum {
    	font-size: 0.6rem;
    	color: #424857;
    }
    .payinfo .payzero {
    	font-size: 0.6rem;
    	color: #424857;
    }
    table{
    	width:100%; 
    	height:50%;
    	position:absolute;
    	bottom:0;
        background-color:white;
        background-top:none;
    }
    table tr td{
    	text-align:center;
    	width: 1.88rem;
    	height: 1.26rem;
    	font-family: "Microsoft YaHei";
    	font-weight: normal;
    	border-right:1px solid #D9D9D9;
    	border-top:1px solid #D9D9D9;
    }
    table tr td:active{
    	background-color:#ECECEC;
    }
    .keybord-return{
    	width: 1.88rem;
    	height: 1.26rem;
    	background:url(../img/keybord_return.png) no-repeat;
    	background-size: 50% 50%;
    	background-position: center;
    }
    .pay{
    	color:#fff;
    	font-size:0.4rem;
    	background-color:#0259a1;   
    }
    .pay:active{
    	background-color: #004198;
    }
    .pay a{
    	display: block;
    	position: relative;
    	width: 100%;
    	height: 100%;
    	color: #fff;
    	text-decoration: none; 
    }
    .a-pay {
    	position: absolute;
    	top: 50%;
    	left: 50%;
    	-webkit-transform: translate(-50%, -50%);
    	-o-transform: translate(-50%, -50%);
    	-moz-transform: translate(-50%, -50%);
    	transform: translate(-50%, -50%);
    }
    .pay-disabled {
    	background-color: #0259a1;
    }
    

    附带上退格符jquery仿支付宝首页焦点图片切换,将其放项目的img文件中jquery仿支付宝首页焦点图片切换,否则数字键盘退格符无法显示:

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论