share1.html 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>走馬短劇</title>
  7. <link href="./css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous" />
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. }
  13. #app {
  14. width: 100vw;
  15. height: 100vh;
  16. background-image: url(./assets/bg-1.png);
  17. background-position: center;
  18. background-size: cover;
  19. }
  20. #btn {
  21. width: 253px;
  22. height: 51px;
  23. background-image: url(./assets/btn1.png);
  24. background-position: center;
  25. background-size: cover;
  26. position: absolute;
  27. bottom: calc(env(safe-area-inset-bottom) + 30px);
  28. bottom: calc(constant(safe-area-inset-bottom) + 30px);
  29. left: 50%;
  30. transform: translateX(-50%);
  31. z-index: 20;
  32. }
  33. .video {
  34. position: absolute;
  35. top: 50%;
  36. left: 50%;
  37. transform: translate(-50%, -50%);
  38. border: 2px solid #fff;
  39. }
  40. .video::after {
  41. content: '';
  42. position: absolute;
  43. top: 0;
  44. left: 0;
  45. right: 0;
  46. bottom: 0;
  47. z-index: 1;
  48. background-color: rgba(0, 0, 0, 0.3);
  49. }
  50. #title {
  51. position: absolute;
  52. top: 10px;
  53. font-size: 12px;
  54. color: #ffffff;
  55. line-height: 24px;
  56. text-align: center;
  57. width: 100%;
  58. z-index: 20;
  59. }
  60. #video-cover {
  61. width: 70vw;
  62. display: block;
  63. }
  64. .label-img {
  65. width: 24px;
  66. height: 24px;
  67. }
  68. :root {
  69. --bs-tertiary-bg: #f5f7fa;
  70. --bs-form-control-bg: #f5f7fa;
  71. --bs-border-color: #f5f7fa;
  72. --bs-modal-margin: 28px;
  73. }
  74. .input-group-text {
  75. border-radius: 50px;
  76. }
  77. .form-control {
  78. border-radius: 50px;
  79. }
  80. .modal-dialog {
  81. margin: 28px;
  82. }
  83. .modal-title {
  84. font-size: 20px;
  85. font-family: AlimamaShuHeiTi;
  86. color: #000000;
  87. line-height: 20px;
  88. text-align: center;
  89. margin: 0 auto 22px;
  90. }
  91. .modal-body {
  92. padding: 18px 20px 26px;
  93. }
  94. .submit-btn {
  95. background: linear-gradient(180deg, #ff7340 0%, #ff3e3e 100%);
  96. height: 42px;
  97. font-size: 16px;
  98. font-family: AlimamaShuHeiTi;
  99. color: #ffffff;
  100. line-height: 24px;
  101. text-shadow: 0px 2px 0px #e71d0d;
  102. border-radius: 42px;
  103. margin-top: 10px;
  104. }
  105. .form-check-input:checked {
  106. background-color: #ff7340;
  107. border-color: #ff7340;
  108. }
  109. .form-check-label {
  110. font-size: 12px;
  111. font-weight: 400;
  112. color: #61657a;
  113. line-height: 24px;
  114. }
  115. </style>
  116. </head>
  117. <body>
  118. <div id="app">
  119. <div class="video">
  120. <div class="title" id="title"></div>
  121. <img src="" alt="" id="video-cover" />
  122. </div>
  123. <div id="btn" data-bs-toggle="modal" data-bs-target="#exampleModal"></div>
  124. <div
  125. class="modal fade"
  126. id="exampleModal"
  127. tabindex="-1"
  128. aria-labelledby="exampleModalLabel"
  129. aria-hidden="true"
  130. >
  131. <div class="modal-dialog modal-dialog-centered">
  132. <div class="modal-content">
  133. <div class="modal-body">
  134. <div class="modal-title">立即下载</div>
  135. <form class="row g-3 needs-validation" novalidate>
  136. <div class="col-md-4">
  137. <div class="input-group has-validation">
  138. <span class="input-group-text" id="inputEmail">
  139. <img
  140. class="label-img"
  141. src="./assets/email.png"
  142. alt=""
  143. />
  144. </span>
  145. <input
  146. type="email"
  147. class="form-control"
  148. id="email"
  149. aria-describedby="inputEmail"
  150. required
  151. placeholder="請輸入您的郵箱"
  152. />
  153. <div class="invalid-feedback">郵箱不能为空或格式错误</div>
  154. </div>
  155. </div>
  156. <div class="col-12 d-grid gap-2">
  157. <button class="btn submit-btn" type="submit">下载</button>
  158. </div>
  159. </form>
  160. </div>
  161. </div>
  162. </div>
  163. </div>
  164. </div>
  165. <script src="./js/bootstrap.min.js" crossorigin="anonymous"></script>
  166. <script src="./js/form.js" crossorigin="anonymous"></script>
  167. <script>
  168. function GetQueryString(name) {
  169. var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
  170. var r = window.location.search.substr(1).match(reg) //获取url中"?"符后的字符串并正则匹配
  171. var context = ''
  172. if (r != null) context = decodeURIComponent(r[2])
  173. reg = null
  174. r = null
  175. return context == null || context == '' || context == 'undefined' ? '' : context
  176. }
  177. if (GetQueryString('cover')) {
  178. var img = document.getElementById('video-cover')
  179. img.src = decodeURIComponent(GetQueryString('cover'))
  180. }
  181. if (GetQueryString('title')) {
  182. var title = GetQueryString('title')
  183. if (GetQueryString('num')) {
  184. title += '-第'
  185. title += GetQueryString('num') + '集'
  186. }
  187. document.getElementById('title').innerText = title
  188. }
  189. </script>
  190. </body>
  191. </html>