Jquery+javascript實現(xiàn)支付網(wǎng)頁數(shù)字鍵盤
Jquery+javascript動態(tài)生成支付網(wǎng)頁數(shù)字鍵盤
制作網(wǎng)頁支付界面的時候,數(shù)字鍵盤適配不同的屏幕寬高比是一個很麻煩的事,所以我制作了一個根據(jù)屏幕寬高動態(tài)生成的數(shù)字鍵盤
運行截圖:

實現(xiàn)代碼
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>動態(tài)數(shù)字鍵盤</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>確認(rèn)</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>
<!--自適應(yīng)布局-->
<script>
(function () {
var designW = 750; //設(shè)計稿寬
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";
//監(jiān)測窗口大小變化
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;
}
附帶上退格符,將其放項目的img文件中,否則數(shù)字鍵盤退格符無法顯示:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript中this的四個綁定規(guī)則總結(jié)
相信大家都知道,ES5及之前時代的JavaScript中this的綁定機制是讓很多開發(fā)者頭疼不已的事情。this 的綁定變化多端,讓筆者也吃了不少虧。所以本文總結(jié)了this的四條綁定規(guī)則,在此記錄,以防自己遺忘,也方便他人參考借鑒。下面來一起看看吧。2016-09-09
ECharts餅圖顏色設(shè)置的4種方式總結(jié)
這篇文章主要給大家介紹了關(guān)于ECharts餅圖顏色設(shè)置的4種方式,ECharts餅圖的顏色可以通過多種方式進行設(shè)置,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-09-09
跟我學(xué)習(xí)javascript的for循環(huán)和for...in循環(huán)
跟我學(xué)習(xí)javascript的for循環(huán)和for...in循環(huán),它們是JavaScript中提供了兩種方式迭代對象,本文就和大家一起學(xué)習(xí)for循環(huán)和for...in循環(huán),感興趣的小伙伴們可以參考一下2015-11-11
支付寶小程序自定義彈窗dialog插件的實現(xiàn)代碼
支付寶小程序官方提供的alert提示框、dialog對話框、model彈窗功能比較有限,有些都不能隨意自定義修改的。這篇文章主要介紹了支付寶小程序自定義彈窗dialog插件的實現(xiàn)代碼,需要的朋友可以參考下2018-11-11
ymPrompt的doHandler方法來實現(xiàn)獲取子窗口返回值的方法
今天在寫頁面時用到了ymPrompt的win方法來彈出一個窗口。由于要用到獲取子窗口返回來的值判斷是否刷新父窗口,在ymPrompt的組件Demo中一直沒有找到合適的方法實現(xiàn)2010-06-06

