13

Jquery+javascript制作支付网页数字键盘

 3 years ago
source link: https://blog.csdn.net/botellei/article/details/111444970
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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

运行截图:

在这里插入图片描述

html:
<!DOCTYPE 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">1</td>
                <td class="paynum">2</td>
                <td class="paynum">3</td>
                <td id="pay-return">
                    <div class="keybord-return"></div>
                </td>
            </tr>
            <tr>
                <td class="paynum">4</td>
                <td class="paynum">5</td>
                <td class="paynum">6</td>
                <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">7</td>
                <td class="paynum">8</td>
                <td class="paynum">9</td>
            </tr>
            <tr>
                <td id="pay-zero" colspan="2" class="payzero">0</td>
                <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>

@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;
}

附带上退格符,将其放项目的img文件中,否则数字键盘退格符无法显示:
在这里插入图片描述


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK