制作网页支付界面的时候,数字键盘适配不同的屏幕宽高比是一个很麻烦的事,所以我制作了一个根据屏幕宽高动态生成的数字键盘
<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>
@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;
}