本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(4)

前端项目 电影院选座付款系统 【原生 JS 实现 页面美观简洁】

发布于2022-04-14 18:45     阅读(1853)     评论(0)     点赞(27)     收藏(2)


       本篇文章写的是一个电影院的选座与页面跳转系统,因为时间仓促,只写了 3号厅的选座系统,后期有时间会写一个完整的功能更完备的电影院系统。

       本项目完全使用原生JS实现,共有下列功能:两种座位价格 22 元 和 23元,包场功能,清空已选座位功能,点击支付后会将总价格传入付款界面,数据在页面间传递使用的是 JS 的本地存储 .......

文章目录:

 效果展示:

主页面:

选座页面:

 开始选座:

 包场:

 页面跳转:

 代码分析:第一个页面(选座界面)

第一个页面获取到的元素:

两个价位座位的点击事件:

全选按钮的点击全选事件:

清除按钮的清除已选事件:

支付按钮的支付提交事件:

关闭按钮与选座按钮的点击事件:

 代码分析:第二个页面(付款界面)

第二个页面的元素获取:

获取第一个页面传来的价格:

点击付款方式切换二维码:

返回第一个页面:

选座界面完整代码:

付款界面完整代码:


效果展示:

主页面:

选座页面:

点击选座后即可弹出选座框进入选座

 开始选座:

座位价格分为两种,红色的为 22元,黑色的为 32元,选择后支付按钮会变为对应价格,点击清除按钮后会将已选座位清除,也可以点击选过的位置来清除某个座位

 包场:

点击包场按钮后会选上所有的座位,再点即可取消全选,点击清除按钮后会将已选座位清除

 页面跳转:

点击支付后会等待五秒再进入付款界面,方便人们打开手机准备好付款,更加人性化的设计往往更能融入社会

 五秒后便会跳转到第二个付款页面,并且要支付的价格会传入这个页面( localStroage ),此页面也可以点击返回返回到首页,这个页面还可以进行三种支付方式的点击切换,更能融入更多人

 以上就是此案例的全部页面展示


 代码分析:第一个页面(选座界面)

第一个页面获取到的元素:

  1. var set22=document.querySelector('.set').querySelectorAll('.price22'); //22元的座位
  2. var set32=document.querySelector('.set').querySelectorAll('.price32'); //32元的座位
  3. var btn_buy=document.querySelector('.buy'); //支付按钮
  4. var btn_all=document.querySelector('.all'); //全选按钮
  5. var btn_clear=document.querySelector('.clear'); //清除按钮
  6. var btn_close=document.querySelector('.close'); //关闭按钮
  7. var outbox=document.querySelector('.outbox') //获取到整个大盒子,包括选座框和关闭按钮
  8. var a=document.querySelector('a'); //跳转的页面链接
  9. var mask=document.querySelector('.mask'); //遮盖层(点击后半透明度遮盖全页面)
  10. var btn_select=document.querySelector('.select'); //首页选择按钮

两个价位座位的点击事件:

  1. for(var i=0;i<set22.length;i++){ //22元座位
  2. set22[i].addEventListener('click',function(){
  3. if(this.innerHTML!='✔'){
  4. this.style.backgroundColor='rgb(255, 169, 83)'
  5. this.innerHTML='✔'
  6. num22++;
  7. }else if(this.innerHTML='✔'){
  8. this.style.backgroundColor='';
  9. this.innerHTML='';
  10. num22--;
  11. }
  12. if(num22+num32>0){
  13. nums=num22+num32
  14. price=num22*22+num32*32
  15. btn_buy.innerHTML='您已选择了'+ nums +'个座位,共'+ price +'元'
  16. btn_buy.className='buy current'
  17. }
  18. else if(num22+num32==0){
  19. btn_buy.innerHTML='支付'
  20. }
  21. })
  22. }
  23. for(var i=0;i<set32.length;i++){ //32元座位
  24. set32[i].addEventListener('click',function(){
  25. if(this.innerHTML!='✔'){
  26. this.style.backgroundColor='rgb(255, 169, 83)'
  27. this.innerHTML='✔'
  28. num32++;
  29. }else if(this.innerHTML='✔'){
  30. this.style.backgroundColor='';
  31. this.innerHTML='';
  32. num32--;
  33. }
  34. if(num22+num32>0){
  35. nums=num22+num32
  36. price=num22*22+num32*32
  37. btn_buy.innerHTML='您已选择了'+ nums +'个座位,共'+price+'元'
  38. btn_buy.className='buy current'
  39. }
  40. else if(num22+num32==0){
  41. btn_buy.innerHTML='支付'
  42. }
  43. })
  44. }

全选按钮的点击全选事件:

  1. flag=0
  2. btn_all.addEventListener('click',function(){
  3. if(flag==0){
  4. for(var i=0;i<set22.length;i++){
  5. set22[i].style.backgroundColor='rgb(255, 169, 83)'
  6. set22[i].innerHTML='✔'
  7. num22=set22.length;
  8. }
  9. for(var i=0;i<set32.length;i++){
  10. set32[i].style.backgroundColor='rgb(255, 169, 83)'
  11. set32[i].innerHTML='✔'
  12. num32=set32.length;
  13. }
  14. price=parseInt(set22.length)*22+parseInt(set32.length)*32
  15. btn_buy.innerHTML='您选择了包场,共'+price+'元'
  16. btn_buy.className='buy current'
  17. flag=1
  18. }else if(flag==1){
  19. for(var i=0;i<set22.length;i++){
  20. set22[i].style.backgroundColor=''
  21. set22[i].innerHTML=''
  22. num22=0
  23. num32=0
  24. }
  25. for(var i=0;i<set32.length;i++){
  26. set32[i].style.backgroundColor=''
  27. set32[i].innerHTML=''
  28. }
  29. btn_buy.innerHTML='支付'
  30. flag=0;
  31. }
  32. })

清除按钮的清除已选事件:

  1. btn_clear.addEventListener('click',function(){
  2. for(var i=0;i<set22.length;i++){
  3. if(set22[i].innerHTML=='✔'){
  4. set22[i].style.backgroundColor=''
  5. set22[i].innerHTML=''
  6. num22=0
  7. }
  8. }
  9. for(var i=0;i<set32.length;i++){
  10. if(set32[i].innerHTML=='✔'){
  11. set32[i].style.backgroundColor=''
  12. set32[i].innerHTML=''
  13. num32=0
  14. }
  15. }
  16. btn_buy.innerHTML='支付'
  17. })

支付按钮的支付提交事件:

  1. btn_buy.addEventListener('click',function(){
  2. btn_buy.disabled='true'
  3. if(num22+num32>0){
  4. var time=5
  5. var timer=window.setInterval(function(){
  6. if(time==0){
  7. clearInterval(timer)
  8. btn_buy.innerHTML='支付'
  9. time=5
  10. for(var i=0;i<set22.length;i++){
  11. if(set22[i].innerHTML=='✔'){
  12. set22[i].style.backgroundColor=''
  13. set22[i].innerHTML=''
  14. num22=0
  15. }
  16. }
  17. for(var i=0;i<set32.length;i++){
  18. if(set32[i].innerHTML=='✔'){
  19. set32[i].style.backgroundColor=''
  20. set32[i].innerHTML=''
  21. num32=0
  22. }
  23. }
  24. a.click();
  25. }else{
  26. btn_buy.innerHTML=time +'秒后进入付款页面'
  27. time--;
  28. }
  29. },1000)
  30. window.localStorage.setItem('price3',price)
  31. }
  32. })

关闭按钮与选座按钮的点击事件:

  1. btn_close.addEventListener('click',function(){
  2. btn_close.click()
  3. outbox.style.display='none'
  4. mask.style.display='none'
  5. })
  6. btn_select.addEventListener('click',function(){
  7. outbox.style.display='block'
  8. mask.style.display='block'
  9. })


 代码分析:第二个页面(付款界面)

第二个页面的元素获取:

  1. var jiaqian=document.querySelector('.jiaqian'); //价格显示的位置
  2. var btns=document.querySelectorAll('button') //三个付款方式按钮
  3. var lis=document.querySelectorAll('li') //三个付款码图片
  4. var btn_fanhui=document.querySelector('.fanhui') //返回键
  5. var a=document.querySelector('a') //跳转至第一个页面

获取第一个页面传来的价格:

使用了 localStorage 本地存储

price=window.localStorage.getItem('price3')

点击付款方式切换二维码:

使用 自定义属性

  1. for(var i=0;i<btns.length;i++){
  2. btns[i].setAttribute('index',i)
  3. btns[i].addEventListener('click',function(){
  4. var index=this.getAttribute('index');
  5. for(var i=0;i<lis.length;i++){
  6. lis[i].style.display='none'
  7. }
  8. lis[index].style.display='block'
  9. })
  10. }

返回第一个页面:

  1. btn_fanhui.addEventListener('click',function(){
  2. a.click()
  3. })

选座界面完整代码:

( 图片请自己添加 ! ! ! )

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>电影票选座页面</title>
  8. <style>
  9. *{
  10. padding: 0;
  11. margin: 0;
  12. }
  13. body{
  14. background: url(./phpto/6de4e89f2aa46710b597bdb6d2dafa4c.jpg) no-repeat;
  15. }
  16. .outbox{
  17. display: none;
  18. position: absolute;
  19. top: 35px;
  20. left: 415px;
  21. }
  22. .bigbox{
  23. box-sizing: border-box;
  24. width: 600px;
  25. height: 700px;
  26. background-color: rgb(213, 213, 213);
  27. margin: 50px auto;
  28. padding: 25px;
  29. border: 1.5px solid;
  30. }
  31. .head{
  32. box-sizing: border-box;
  33. width: 550px;
  34. height: 70px;
  35. background-color: rgb(98, 176, 255);
  36. color: rgb(255, 255, 255);
  37. text-align: center;
  38. text-shadow: 1px 1px 1px black;
  39. line-height: 70px;
  40. font-size: 35px;
  41. font-weight: bold;
  42. border-top: 1.5px solid black;
  43. border-left: 1.5px solid black;
  44. border-right: 1.5px solid black;
  45. }
  46. .information{
  47. box-sizing: border-box;
  48. width: 550px;
  49. height: 50px;
  50. background-color: rgb(253, 253, 253);
  51. padding: 17px;
  52. border-bottom: 1px solid;
  53. border-left: 1.5px solid;
  54. border-right: 1.5px solid;
  55. }
  56. .information p{
  57. float: left;
  58. margin-right: 11px;
  59. }
  60. .info-set1{
  61. float: left;
  62. box-sizing: border-box;
  63. width: 15px;
  64. height: 15px;
  65. border: 1px solid red;
  66. margin-right: 5px;
  67. -webkit-border-radius:5px;
  68. -moz-border-radius:5px;
  69. background-color: rgb(235, 235, 235);
  70. }
  71. .info-set2{
  72. float: left;
  73. box-sizing: border-box;
  74. width: 15px;
  75. height: 15px;
  76. border: 1px solid ;
  77. margin-right: 5px;
  78. -webkit-border-radius:5px;
  79. -moz-border-radius:5px;
  80. background-color: rgb(235, 235, 235);
  81. }
  82. .info-set3{
  83. float: left;
  84. box-sizing: border-box;
  85. width: 15px;
  86. height: 15px;
  87. border: 1px solid red;
  88. margin-right: 5px;
  89. -webkit-border-radius:5px;
  90. -moz-border-radius:5px;
  91. background-color: rgb(255, 133, 33);
  92. font-size: 10px;
  93. text-align: center;
  94. line-height: 15px;
  95. color: rgb(255, 255, 255);
  96. }
  97. .set{
  98. box-sizing: border-box;
  99. width: 550px;
  100. height: 430px;
  101. background-color: rgb(255, 255, 255);
  102. margin-bottom: 20px;
  103. padding-top: 80px;
  104. border-left: 1.5px solid;
  105. border-right: 1.5px solid;
  106. border-bottom: 1.5px solid;
  107. }
  108. .buttons{
  109. width: 550px;
  110. height: 80px;
  111. background-color: rgb(213, 213, 213);
  112. }
  113. ul{
  114. width: 550px;
  115. box-sizing: border-box;
  116. }
  117. ul li{
  118. box-sizing: border-box;
  119. float: left;
  120. width: 30px;
  121. height: 30px;
  122. margin: 10px;
  123. list-style: none;
  124. border: 1.4px solid;
  125. background-color: rgb(235, 235, 235);
  126. -webkit-border-radius:7px;
  127. -moz-border-radius:7px;
  128. cursor: pointer;
  129. text-align: center;
  130. line-height: 30px;
  131. color: rgb(255, 255, 255);
  132. font-size: 15px;
  133. border: 1.4px solid black;
  134. }
  135. .price22{
  136. box-sizing: border-box;
  137. float: left;
  138. width: 30px;
  139. height: 30px;
  140. margin: 10px;
  141. list-style: none;
  142. border: 1.4px solid red;
  143. background-color: rgb(235, 235, 235);
  144. -webkit-border-radius:7px;
  145. -moz-border-radius:7px;
  146. cursor: pointer;
  147. }
  148. li:hover{
  149. background-color: rgb(177, 177, 177);
  150. }
  151. .buttons{
  152. box-sizing: border-box;
  153. padding-top: 7px;
  154. }
  155. .clear{
  156. width: 130px;
  157. height: 70px;
  158. margin-right: 15px;
  159. -webkit-border-radius:16px;
  160. -moz-border-radius:16px;
  161. border: 2px solid rgb(70, 70, 70);
  162. background-color: rgb(165, 165, 165);
  163. text-align: center;
  164. line-height: 70px;
  165. font-size: 20px;
  166. font-weight: bold;
  167. color: rgb(255, 255, 255);
  168. text-shadow: 2px 2px 2px rgb(61, 61, 61);
  169. }
  170. .clear:hover{
  171. background-color: rgb(210, 210, 210);
  172. }
  173. .all{
  174. width: 130px;
  175. height: 70px;
  176. margin-right: 15px;
  177. -webkit-border-radius:16px;
  178. -moz-border-radius:16px;
  179. border: 2px solid rgb(70, 70, 70);
  180. background-color: rgb(165, 165, 165);
  181. text-align: center;
  182. line-height: 70px;
  183. font-size: 20px;
  184. font-weight: bold;
  185. color: rgb(255, 255, 255);
  186. text-shadow: 2px 2px 2px rgb(67, 67, 67);
  187. }
  188. .all:hover{
  189. background-color: rgb(210, 210, 210);
  190. }
  191. .buy{
  192. width: 250px;
  193. height: 70px;
  194. -webkit-border-radius:16px;
  195. -moz-border-radius:16px;
  196. border: 2px solid rgb(70, 70, 70);
  197. background-color: rgb(255, 169, 83);
  198. text-align: center;
  199. line-height: 70px;
  200. font-size: 20px;
  201. font-weight: bold;
  202. color: rgb(255, 255, 255);
  203. text-shadow: 2px 2px 2px rgb(60, 60, 60);
  204. }
  205. .buy:hover{
  206. background-color: rgb(201, 27, 27);
  207. }
  208. .current{
  209. font-size: 16.2px;
  210. }
  211. .close{
  212. box-sizing: border-box;
  213. position: absolute;
  214. top: 55px;
  215. right: -22px;
  216. width: 20px;
  217. height: 20px;
  218. border: 1.4px solid;
  219. text-align: center;
  220. line-height: 13px;
  221. background-color: #fff;
  222. font-size: 25px;
  223. cursor: pointer;
  224. }
  225. .close:hover{
  226. background-color: rgb(255, 235, 235);
  227. }
  228. .index{
  229. box-sizing: border-box;
  230. width: 800px;
  231. height: 200px;
  232. margin: 200px auto;
  233. text-align: center;
  234. line-height: 200px;
  235. font-size: 55px;
  236. font-weight: bold;
  237. text-shadow: 3px 3px 3px rgb(255, 255, 255);
  238. }
  239. .select{
  240. position: absolute;
  241. left: 450px;
  242. top: 460px;
  243. width: 550px;
  244. height: 130px;
  245. display: inline-block;
  246. -webkit-border-radius:56px;
  247. -moz-border-radius:56px;
  248. text-align: center;
  249. font-size: 40px;
  250. font-weight: bold;
  251. background-color: rgb(255, 171, 75);
  252. border: 2px solid gray;
  253. color: #fff;
  254. text-shadow: 3px 3px 3px black;
  255. }
  256. .select:hover{
  257. background-color: rgb(128, 128, 128);
  258. border: 2px solid rgb(0, 0, 0);
  259. }
  260. .mask{
  261. position: absolute;
  262. top: 0;
  263. left: 0;
  264. width: 1440px;
  265. height: 849px;
  266. background-color: rgba(0, 0, 0, 0.506);
  267. display: none;
  268. }
  269. </style>
  270. <script src="./jQuery.js"></script>
  271. </head>
  272. <body>
  273. <div class="index">欢迎您光顾万达影城三号厅</div>
  274. <button class="select">选&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;座</button>
  275. <div class="mask"></div>
  276. <div class="outbox">
  277. <div class="close">x</div>
  278. <div class="bigbox">
  279. <div class="head">万达影城 3号厅</div>
  280. <div class="information">
  281. <div class="info-set1"></div>
  282. <p>22元</p>
  283. <div class="info-set2"></div>
  284. <p>32元</p>
  285. <div class="info-set3">✔</div>
  286. <p>已选</p>
  287. </div>
  288. <div class="set">
  289. <ul>
  290. <li class="price22"></li>
  291. <li class="price22"></li>
  292. <li class="price22"></li>
  293. <li class="price22"></li>
  294. <li class="price22"></li>
  295. <li class="price22"></li>
  296. <li class="price22"></li>
  297. <li class="price22"></li>
  298. <li class="price22"></li>
  299. <li class="price22"></li>
  300. <li class="price22"></li>
  301. <li class="price22"></li>
  302. <li class="price22"></li>
  303. <li class="price22"></li>
  304. <li class="price22"></li>
  305. <li class="price22"></li>
  306. <li class="price22"></li>
  307. <li class="price22"></li>
  308. <li class="price22"></li>
  309. <li class="price22"></li>
  310. <li class="price22"></li>
  311. <li class="price22"></li>
  312. <li class="price32"></li>
  313. <li class="price32"></li>
  314. <li class="price32"></li>
  315. <li class="price32"></li>
  316. <li class="price32"></li>
  317. <li class="price32"></li>
  318. <li class="price32"></li>
  319. <li class="price32"></li>
  320. <li class="price32"></li>
  321. <li class="price32"></li>
  322. <li class="price32"></li>
  323. <li class="price32"></li>
  324. <li class="price32"></li>
  325. <li class="price32"></li>
  326. <li class="price32"></li>
  327. <li class="price32"></li>
  328. <li class="price32"></li>
  329. <li class="price32"></li>
  330. <li class="price32"></li>
  331. <li class="price32"></li>
  332. <li class="price32"></li>
  333. <li class="price32"></li>
  334. <li class="price32"></li>
  335. <li class="price32"></li>
  336. <li class="price32"></li>
  337. <li class="price32"></li>
  338. <li class="price32"></li>
  339. <li class="price32"></li>
  340. <li class="price32"></li>
  341. <li class="price32"></li>
  342. <li class="price32"></li>
  343. <li class="price32"></li>
  344. <li class="price32"></li>
  345. <li class="price32"></li>
  346. <li class="price32"></li>
  347. <li class="price32"></li>
  348. <li class="price32"></li>
  349. <li class="price32"></li>
  350. <li class="price32"></li>
  351. <li class="price32"></li>
  352. <li class="price32"></li>
  353. <li class="price32"></li>
  354. <li class="price32"></li>
  355. <li class="price32"></li>
  356. <li class="price32"></li>
  357. <li class="price32"></li>
  358. <li class="price32"></li>
  359. <li class="price32"></li>
  360. <li class="price32"></li>
  361. <li class="price32"></li>
  362. <li class="price32"></li>
  363. <li class="price32"></li>
  364. <li class="price32"></li>
  365. <li class="price32"></li>
  366. <li class="price32"></li>
  367. </ul>
  368. </div>
  369. <div class="buttons">
  370. <button class="clear">清空已选</button>
  371. <button class="all">包场</button>
  372. <!-- <form action="./buy.html" style="display: inline-block;"> -->
  373. <button class="buy" name="price" value=111>支付</button>
  374. <!-- </form> -->
  375. </div>
  376. </div>
  377. </div>
  378. <a href="./buy.html"></a>
  379. <script>
  380. num22=0;
  381. num32=0;
  382. price=0;
  383. var set22=document.querySelector('.set').querySelectorAll('.price22');
  384. var set32=document.querySelector('.set').querySelectorAll('.price32');
  385. var btn_buy=document.querySelector('.buy');
  386. var btn_all=document.querySelector('.all');
  387. var btn_clear=document.querySelector('.clear');
  388. var btn_close=document.querySelector('.close');
  389. var outbox=document.querySelector('.outbox')
  390. var a=document.querySelector('a');
  391. var mask=document.querySelector('.mask');
  392. var btn_select=document.querySelector('.select');
  393. for(var i=0;i<set22.length;i++){
  394. set22[i].addEventListener('click',function(){
  395. if(this.innerHTML!='✔'){
  396. this.style.backgroundColor='rgb(255, 169, 83)'
  397. this.innerHTML='✔'
  398. num22++;
  399. }else if(this.innerHTML='✔'){
  400. this.style.backgroundColor='';
  401. this.innerHTML='';
  402. num22--;
  403. }
  404. if(num22+num32>0){
  405. nums=num22+num32
  406. price=num22*22+num32*32
  407. btn_buy.innerHTML='您已选择了'+ nums +'个座位,共'+ price +'元'
  408. btn_buy.className='buy current'
  409. }
  410. else if(num22+num32==0){
  411. btn_buy.innerHTML='支付'
  412. }
  413. })
  414. }
  415. for(var i=0;i<set32.length;i++){
  416. set32[i].addEventListener('click',function(){
  417. if(this.innerHTML!='✔'){
  418. this.style.backgroundColor='rgb(255, 169, 83)'
  419. this.innerHTML='✔'
  420. num32++;
  421. }else if(this.innerHTML='✔'){
  422. this.style.backgroundColor='';
  423. this.innerHTML='';
  424. num32--;
  425. }
  426. if(num22+num32>0){
  427. nums=num22+num32
  428. price=num22*22+num32*32
  429. btn_buy.innerHTML='您已选择了'+ nums +'个座位,共'+price+'元'
  430. btn_buy.className='buy current'
  431. }
  432. else if(num22+num32==0){
  433. btn_buy.innerHTML='支付'
  434. }
  435. })
  436. }
  437. flag=0
  438. btn_all.addEventListener('click',function(){
  439. if(flag==0){
  440. for(var i=0;i<set22.length;i++){
  441. set22[i].style.backgroundColor='rgb(255, 169, 83)'
  442. set22[i].innerHTML='✔'
  443. num22=set22.length;
  444. }
  445. for(var i=0;i<set32.length;i++){
  446. set32[i].style.backgroundColor='rgb(255, 169, 83)'
  447. set32[i].innerHTML='✔'
  448. num32=set32.length;
  449. }
  450. price=parseInt(set22.length)*22+parseInt(set32.length)*32
  451. btn_buy.innerHTML='您选择了包场,共'+price+'元'
  452. btn_buy.className='buy current'
  453. flag=1
  454. }else if(flag==1){
  455. for(var i=0;i<set22.length;i++){
  456. set22[i].style.backgroundColor=''
  457. set22[i].innerHTML=''
  458. num22=0
  459. num32=0
  460. }
  461. for(var i=0;i<set32.length;i++){
  462. set32[i].style.backgroundColor=''
  463. set32[i].innerHTML=''
  464. }
  465. btn_buy.innerHTML='支付'
  466. flag=0;
  467. }
  468. })
  469. btn_clear.addEventListener('click',function(){
  470. for(var i=0;i<set22.length;i++){
  471. if(set22[i].innerHTML=='✔'){
  472. set22[i].style.backgroundColor=''
  473. set22[i].innerHTML=''
  474. num22=0
  475. }
  476. }
  477. for(var i=0;i<set32.length;i++){
  478. if(set32[i].innerHTML=='✔'){
  479. set32[i].style.backgroundColor=''
  480. set32[i].innerHTML=''
  481. num32=0
  482. }
  483. }
  484. btn_buy.innerHTML='支付'
  485. })
  486. btn_buy.addEventListener('click',function(){
  487. btn_buy.disabled='true'
  488. if(num22+num32>0){
  489. var time=5
  490. var timer=window.setInterval(function(){
  491. if(time==0){
  492. clearInterval(timer)
  493. btn_buy.innerHTML='支付'
  494. time=5
  495. for(var i=0;i<set22.length;i++){
  496. if(set22[i].innerHTML=='✔'){
  497. set22[i].style.backgroundColor=''
  498. set22[i].innerHTML=''
  499. num22=0
  500. }
  501. }
  502. for(var i=0;i<set32.length;i++){
  503. if(set32[i].innerHTML=='✔'){
  504. set32[i].style.backgroundColor=''
  505. set32[i].innerHTML=''
  506. num32=0
  507. }
  508. }
  509. a.click();
  510. }else{
  511. btn_buy.innerHTML=time +'秒后进入付款页面'
  512. time--;
  513. }
  514. },1000)
  515. window.localStorage.setItem('price3',price)
  516. }
  517. })
  518. btn_close.addEventListener('click',function(){
  519. btn_close.click()
  520. outbox.style.display='none'
  521. mask.style.display='none'
  522. })
  523. btn_select.addEventListener('click',function(){
  524. outbox.style.display='block'
  525. mask.style.display='block'
  526. })
  527. </script>
  528. </body>
  529. </html>

付款界面完整代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>电影票支付</title>
  8. <style>
  9. *{
  10. margin: 0;
  11. padding: 0;
  12. }
  13. body{
  14. background-color: rgb(178, 178, 178);
  15. background: url(./phpto/6de4e89f2aa46710b597bdb6d2dafa4c.jpg) no-repeat;
  16. }
  17. .box{
  18. box-sizing: border-box;
  19. width: 800px;
  20. height: 450px;
  21. background-color: rgb(213, 213, 213);
  22. margin: 160px auto;
  23. padding: 20px;
  24. padding-right: 10px;
  25. border: 1.6px solid;
  26. }
  27. .left{
  28. box-sizing: border-box;
  29. float: left;
  30. width: 250px;
  31. height: 410px;
  32. background-color: rgb(173, 172, 172);
  33. margin-right: 20px;
  34. text-align: center;
  35. padding-top: 140px;
  36. line-height: 50px;
  37. font-size: 25px;
  38. font-weight: bold;
  39. color: rgb(255, 255, 255);
  40. text-shadow: 2px 2px 2px black;
  41. }
  42. .jiaqian{
  43. font-size: 40px;
  44. font-weight: bold;
  45. color: rgb(255, 255, 255);
  46. text-shadow: 2px 2px 2px black;
  47. color: rgb(255, 144, 74);
  48. }
  49. .center{
  50. box-sizing: border-box;
  51. float: left;
  52. width: 410px;
  53. height: 410px;
  54. background-color: #fff;
  55. margin-right: 2px;
  56. }
  57. .right{
  58. box-sizing: border-box;
  59. float: left;
  60. width: 80px;
  61. height: 410px;
  62. background-color: rgb(255, 168, 168);
  63. }
  64. .btn1{
  65. width: 80px;
  66. height: 137px;
  67. font-size: 20px;
  68. font-weight: bold;
  69. text-shadow: 2px 2px 2px black;
  70. color: rgb(255, 255, 255);
  71. background-color: rgb(91, 157, 255);
  72. }
  73. .btn1:hover{
  74. background-color: rgb(35, 103, 205);
  75. }
  76. .btn2{
  77. width: 80px;
  78. height: 137px;
  79. font-size: 20px;
  80. font-weight: bold;
  81. text-shadow: 2px 2px 2px black;
  82. color: rgb(255, 255, 255);
  83. background-color: rgb(0, 220, 7);
  84. }
  85. .btn2:hover{
  86. background-color: rgb(0, 150, 5);
  87. }
  88. .btn3{
  89. width: 80px;
  90. height: 137px;
  91. font-size: 20px;
  92. font-weight: bold;
  93. text-shadow: 2px 2px 2px black;
  94. color: rgb(255, 255, 255);
  95. background-color: rgb(255, 98, 98);
  96. }
  97. .btn3:hover{
  98. background-color: rgb(190, 2, 2);
  99. }
  100. ul{
  101. box-sizing: border-box;
  102. width: 410px;
  103. }
  104. li{
  105. box-sizing: border-box;
  106. width: 410px;
  107. height: 410px;
  108. list-style: none;
  109. display: none;
  110. }
  111. img{
  112. box-sizing: border-box;
  113. width: 410px;
  114. height: 410px;
  115. border: 1.4px solid;
  116. }
  117. .fanhui{
  118. position: absolute;
  119. left: 550px;
  120. top: 630px;
  121. width: 300px;
  122. height: 70px;
  123. display: inline-block;
  124. -webkit-border-radius:46px;
  125. -moz-border-radius:46px;
  126. text-align: center;
  127. font-size: 30px;
  128. font-weight: bold;
  129. background-color: rgb(255, 171, 75);
  130. border: 2px solid gray;
  131. color: #fff;
  132. text-shadow: 3px 3px 3px black;
  133. }
  134. .fanhui:hover{
  135. background-color: rgb(128, 128, 128);
  136. border: 2px solid rgb(0, 0, 0);
  137. }
  138. </style>
  139. </head>
  140. <body>
  141. <div class="box">
  142. <div class="left">
  143. <p>感谢您的购买</p>
  144. <p style="display: inline-block;">请您支付&nbsp; </p><p class="jiaqian" style="display: inline-block;"></p><p style="display: inline-block;">&nbsp;元</p>
  145. </div>
  146. <div class="center">
  147. <ul>
  148. <li style="display: block;">
  149. <img src="./phpto/支付宝 (2).jpg" alt="" >
  150. </li>
  151. <li>
  152. <img src="./phpto/微信.jpg" alt="">
  153. </li>
  154. <li>
  155. <img src="./phpto/银行卡.jpg" alt="">
  156. </li>
  157. </ul>
  158. </div>
  159. <div class="right">
  160. <button class="btn1">支付宝</button>
  161. <button class="btn2">微信</button>
  162. <button class="btn3">银行卡</button>
  163. </div>
  164. </div>
  165. <button class="fanhui">返回</button>
  166. <a href="./index.html"></a>
  167. <script>
  168. var jiaqian=document.querySelector('.jiaqian');
  169. var btns=document.querySelectorAll('button')
  170. var lis=document.querySelectorAll('li')
  171. var btn_fanhui=document.querySelector('.fanhui')
  172. var a=document.querySelector('a')
  173. price=window.localStorage.getItem('price3')
  174. jiaqian.innerHTML=price
  175. for(var i=0;i<btns.length;i++){
  176. btns[i].setAttribute('index',i)
  177. btns[i].addEventListener('click',function(){
  178. var index=this.getAttribute('index');
  179. for(var i=0;i<lis.length;i++){
  180. lis[i].style.display='none'
  181. }
  182. lis[index].style.display='block'
  183. })
  184. }
  185. btn_fanhui.addEventListener('click',function(){
  186. a.click()
  187. })
  188. </script>
  189. </body>
  190. </html>

原文链接:https://blog.csdn.net/weixin_52212950/article/details/124102212




所属网站分类: 技术文章 > 博客

作者:西门费雪

链接:http://www.qianduanheidong.com/blog/article/330379/9ea44a3c3b1059c6ef6b/

来源:前端黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

27 0
收藏该文
已收藏

评论内容:(最多支持255个字符)