最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

JS實(shí)現(xiàn)仿微信支付彈窗功能

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:12:30
文檔

JS實(shí)現(xiàn)仿微信支付彈窗功能

JS實(shí)現(xiàn)仿微信支付彈窗功能:先奉上效果圖 html代碼 <!DOCTYPE html> <html> <head> <title>仿手機(jī)微信支付輸入密碼界面效果</title> <meta charset=utf-8 /> <meta name=viewport conte
推薦度:
導(dǎo)讀JS實(shí)現(xiàn)仿微信支付彈窗功能:先奉上效果圖 html代碼 <!DOCTYPE html> <html> <head> <title>仿手機(jī)微信支付輸入密碼界面效果</title> <meta charset=utf-8 /> <meta name=viewport conte

先奉上效果圖

html代碼

<!DOCTYPE html> 
<html> 
 <head> 
 <title>仿手機(jī)微信支付輸入密碼界面效果</title> 
 <meta charset="utf-8" /> 
 <meta name="viewport" content="initial-scale=1.0, width=device-width, user-scalable=no" /> 
 <link rel="stylesheet" type="text/css" href="css/rest.css" rel="external nofollow" /> 
 </head> 
 <body> 
 <!-- 打開(kāi)彈窗按鈕 --> 
 <button id="myBtn">去支付</button> 
 <!-- 彈窗 --> 
 <div id="myModal" class="modal"> 
 <!-- 彈窗內(nèi)容 --> 
 <div class="modal-content"> 
 <div class="paymentArea"> 
 <div class="paymentArea-Entry"> 
 <div class="paymentArea-Entry-Head"> 
 <img src="images/xx_03.jpg" class="close" /> 
 <img src="images/jftc_03.png" class="useImg"> 
 <span class="tips-txt">請(qǐng)輸入支付密碼</span> 
 </div> 
 <div class="paymentArea-Entry-Content"> 
 <div class="pay-name">測(cè)試商品</div> 
 <div class="pay-price">¥88.88</div> 
 </div> 
 <ul class="paymentArea-Entry-Row"></ul> 
 </div> 
 <div class="paymentArea-Keyboard"> 
 <h4> 
 <img src="images/jftc_14.jpg" height="10" /> 
 </h4> 
 <ul class="target"> 
 <li> 
 <a>1</a> 
 <a>2</a> 
 <a>3</a> 
 </li> 
 <li> 
 <a>4</a> 
 <a>5</a> 
 <a>6</a> 
 </li> 
 <li> 
 <a>7</a> 
 <a>8</a> 
 <a>9</a> 
 </li> 
 <li> 
 <a>清空</a> 
 <a> 0 </a> 
 <a>刪除</a> 
 </li> 
 </ul> 
 </div> 
 </div> 
 </div> 
 </div> 
 </body> 
</html> 

css

body { 
 margin: 0; 
 padding: 0; 
 font-size: 0.3rem; 
 font-family: "微軟雅黑", arial; 
 } 
 ul, 
 li { 
 margin: 0; 
 padding: 0; 
 list-style: none; 
 } 
 img { 
 display: block; 
 } 
 #myBtn { 
 display: block; 
 width: 80%; 
 height: auto; 
 margin: 5rem auto; 
 padding: 0.2rem; 
 border-radius: 5px; 
 border: 0; 
 outline: none; 
 font-family: "微軟雅黑"; 
 color: #fff; 
 background-color: #5CB85C; 
 } 
 /* 彈窗 */ 
 .modal { 
 display: none; 
 /* 默認(rèn)隱藏 */ 
 position: fixed; 
 z-index: 1; 
 left: 0; 
 top: 0; 
 width: 100%; 
 height: 100%; 
 overflow: auto; 
 background-color: rgb(0, 0, 0); 
 background-color: rgba(0, 0, 0, 0.4); 
 -webkit-animation-name: fadeIn; 
 -webkit-animation-duration: 0.4s; 
 animation-name: fadeIn; 
 animation-duration: 0.4s 
 } 
 /* 彈窗內(nèi)容 */ 
 .modal-content { 
 position: fixed; 
 bottom: 0; 
 /*background-color: #fefefe;*/ 
 width: 100%; 
 -webkit-animation-name: slideIn; 
 -webkit-animation-duration: 0.4s; 
 animation-name: slideIn; 
 animation-duration: 0.4s 
 } 
 /** 
 * 支付彈窗樣式 
 * **/ 
 .paymentArea-Entry { 
 width: 90%; 
 margin: 0 auto; 
 padding-bottom: 0.3rem; 
 background-color: #fff; 
 } 
 .paymentArea-Entry-Head { 
 display: flex; 
 display: -webkit-flex; 
 height: 0.8rem; 
 line-height: 0.8rem; 
 padding: 0.2rem; 
 border-bottom: 1px solid #5CB85C; 
 } 
 /* 關(guān)閉按鈕 */ 
 .paymentArea-Entry-Head .close { 
 width: 0.5rem; 
 height: 0.5rem; 
 padding: 0.15rem 0.15rem 0.15rem 0; 
 } 
 .paymentArea-Entry-Head .close:hover, 
 .paymentArea-Entry-Head .close:focus { 
 color: #000; 
 text-decoration: none; 
 cursor: pointer; 
 } 
 .paymentArea-Entry-Head .useImg { 
 width: 0.8rem; 
 height: 0.8rem; 
 margin-right: 0.15rem; 
 } 
 .paymentArea-Entry-Head .tips-txt { 
 font-size: 0.4rem; 
 } 
 .paymentArea-Entry-Content { 
 position: relative; 
 padding: 0.2rem 0; 
 text-align: center; 
 } 
 .paymentArea-Entry-Content:after { 
 content: ""; 
 position: absolute; 
 bottom: 0; 
 left: 0.3rem; 
 right: 0.3rem; 
 height: 1px; 
 background-color: #ddd; 
 } 
 .paymentArea-Entry-Content .pay-name { 
 font-size: 0.3rem; 
 } 
 .paymentArea-Entry-Content .pay-price { 
 font-size: 0.4rem; 
 font-weight: bold; 
 } 
 ul.paymentArea-Entry-Row { 
 display: flex; 
 display: -webkit-flex; 
 justify-content: space-between; 
 margin: 0.2rem 0.3rem 0 0.3rem; 
 padding: 0; 
 border: 1px solid #a2a2a2; 
 } 
 ul.paymentArea-Entry-Row li { 
 position: relative; 
 flex-grow: 1; 
 min-width: 1rem; 
 height: 0.8rem; 
 line-height: 0.8rem; 
 text-align: center; 
 border-right: 1px solid #ddd; 
 } 
 ul.paymentArea-Entry-Row li:last-child { 
 border-right: 0; 
 } 
 ul.paymentArea-Entry-Row li img { 
 position: absolute; 
 top: 50%; 
 left: 50%; 
 width: 0.5rem; 
 height: 0.5rem; 
 margin: -0.25rem 0 0 -0.25rem; 
 } 
 .paymentArea-Keyboard { 
 margin-top: 1.2rem; 
 background-color: #fff; 
 } 
 .paymentArea-Keyboard h4 { 
 height: 0.5rem; 
 line-height: 0.5rem; 
 margin: 0; 
 text-align: center; 
 } 
 .paymentArea-Keyboard h4 img { 
 width: 0.93rem; 
 height: 0.32rem; 
 margin: 0 auto; 
 } 
 .paymentArea-Keyboard h4:active { 
 background-color: #e3e3e3; 
 } 
 .paymentArea-Keyboard ul { 
 border-top: 1px solid #ddd; 
 } 
 .paymentArea-Keyboard li { 
 display: flex; 
 display: -webkit-flex; 
 justify-content: space-between; 
 border-bottom: 1px solid #ddd; 
 } 
 .paymentArea-Keyboard li a { 
 flex-grow: 1; 
 display: block; 
 min-width: 1rem; 
 line-height: 1rem; 
 border-right: 1px solid #ddd; 
 font-size: 0.3rem; 
 text-align: center; 
 text-decoration: none; 
 color: #000; 
 } 
 .paymentArea-Keyboard li:last-child, 
 .paymentArea-Keyboard li a:last-child { 
 border: 0; 
 } 
 .paymentArea-Keyboard li a:active { 
 outline: none; 
 background-color: #ddd; 
 } 
 /* 添加動(dòng)畫(huà) */ 
 @-webkit-keyframes slideIn { 
 from { 
 bottom: -300px; 
 opacity: 0 
 } 
 to { 
 bottom: 0; 
 opacity: 1 
 } 
 } 
 @keyframes slideIn { 
 from { 
 bottom: -300px; 
 opacity: 0 
 } 
 to { 
 bottom: 0; 
 opacity: 1 
 } 
 } 
 @-webkit-keyframes fadeIn { 
 from { 
 opacity: 0 
 } 
 to { 
 opacity: 1 
 } 
 } 
 @keyframes fadeIn { 
 from { 
 opacity: 0 
 } 
 to { 
 opacity: 1 
 } 
 } 

js

//定義根目錄字體大小,通過(guò)rem實(shí)現(xiàn)適配 
 document.addEventListener("DOMContentLoaded", function() { 
 var html = document.documentElement; 
 var windowWidth = html.clientWidth; 
 //console.log(windowWidth) 
 html.style.fontSize = windowWidth / 7.5 + "px"; 
 }, false); 
 // 獲取彈窗 
 var modal = document.getElementById('myModal'); 
 // 打開(kāi)彈窗的按鈕對(duì)象 
 var btn = document.getElementById("myBtn"); 
 // 獲取 <span> 元素,用于關(guān)閉彈窗 that closes the modal 
 var span = document.getElementsByClassName("close")[0]; 
 /*創(chuàng)建密碼輸入框*/ 
 var entryArea = document.querySelector(".paymentArea-Entry-Row"); 
 for(var i = 0; i < 6; i++) { 
 var li = document.createElement("li"); 
 entryArea.appendChild(li); 
 } 
 /*鍵盤(pán)操作*/ 
 var doms = document.querySelectorAll('ul li a'); 
 var entryLis = document.querySelectorAll(".paymentArea-Entry-Row li"); 
 var pwds = ""; //存儲(chǔ)密碼 
 var count = 0; //記錄點(diǎn)擊次數(shù) 
 for(var i = 0; i < doms.length; i++) { 
 ! function(dom, index) { 
 dom.addEventListener('click', function() { 
 var txt = this.innerHTML; 
 switch(txt) { 
 case "清空": 
 if(count != 0) { 
 for(var i = 0; i < entryLis.length; i++) { 
 entryLis[i].innerHTML = ""; 
 } 
 pwds = ""; 
 count = 0; 
 console.log(pwds) 
 console.log(count) 
 } 
 break; 
 case "刪除": 
 if(count != 0) { 
 console.log(pwds) 
 entryLis[count - 1].innerHTML = ""; 
 pwds = pwds.substring(0, pwds.length - 1); 
 count--; 
 console.log(pwds) 
 console.log(count) 
 } 
 break; 
 default: 
 /*通過(guò)判斷點(diǎn)擊次數(shù) 向輸入框填充內(nèi)容*/ 
 if(count < 6) { 
 /*創(chuàng)建一個(gè)圖片對(duì)象 插入到方框中*/ 
 var img = new Image(); 
 img.src = "images/dd_03.jpg"; 
 entryLis[count].appendChild(img); 
 /*為存儲(chǔ)密碼的對(duì)象賦值*/ 
 if(pwds == "") { 
 pwds = txt; 
 } else { 
 pwds += txt; 
 } 
 count++; 
 if(pwds.length == 6) { 
 location.; 
 } 
 } else { 
 return; 
 alert("超出限制") 
 } 
 } 
 }); 
 }(doms[i], i); 
 } 
 // 點(diǎn)擊按鈕打開(kāi)彈窗 
 btn.onclick = function() { 
 modal.style.display = "block"; 
 } 
 // 點(diǎn)擊 <span> (x), 關(guān)閉彈窗 
 span.onclick = function() { 
 modal.style.display = "none"; 
 if(count != 0) { 
 for(var i = 0; i < entryLis.length; i++) { 
 entryLis[i].innerHTML = ""; 
 } 
 pwds = ""; 
 count = 0; 
 } 
 } 
 // 在用戶(hù)點(diǎn)擊其他地方時(shí),關(guān)閉彈窗 
 window.onclick = function(event) { 
 if(event.target == modal) { 
 modal.style.display = "none"; 
 if(count != 0) { 
 for(var i = 0; i < entryLis.length; i++) { 
 entryLis[i].innerHTML = ""; 
 } 
 pwds = ""; 
 count = 0; 
 } 
 } 
 } 
 /*開(kāi)關(guān)鍵盤(pán)*/ 
 var openKey = document.querySelector(".paymentArea-Entry-Row"); 
 var switchOfKey = document.querySelector(".paymentArea-Keyboard h4"); 
 switchOfKey.addEventListener('click', function() { 
 var KeyboardH = document.querySelector(".paymentArea-Keyboard").clientHeight; 
 document.querySelector(".paymentArea-Keyboard").style.height = KeyboardH + "px"; 
 document.querySelector(".paymentArea-Keyboard").style.backgroundColor = "transparent"; 
 document.querySelector(".paymentArea-Keyboard h4").style.display = "none"; 
 document.querySelector(".paymentArea-Keyboard ul").style.display = "none"; 
 }) 
 openKey.addEventListener('click', function() { 
 document.querySelector(".paymentArea-Keyboard").style.backgroundColor = "#fff"; 
 document.querySelector(".paymentArea-Keyboard h4").style.display = "block"; 
 document.querySelector(".paymentArea-Keyboard ul").style.display = "block"; 
 }) 

總結(jié)

以上所述是小編給大家介紹的JS實(shí)現(xiàn)仿微信支付彈窗功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JS實(shí)現(xiàn)仿微信支付彈窗功能

JS實(shí)現(xiàn)仿微信支付彈窗功能:先奉上效果圖 html代碼 <!DOCTYPE html> <html> <head> <title>仿手機(jī)微信支付輸入密碼界面效果</title> <meta charset=utf-8 /> <meta name=viewport conte
推薦度:
標(biāo)簽: 支付 js 支付功能
  • 熱門(mén)焦點(diǎn)

最新推薦

猜你喜歡

熱門(mén)推薦

專(zhuān)題
Top