page_single_push.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  1. {extend name="layout/layout" /}
  2. {block name="title"}限时活动{/block}
  3. {block name="css"}
  4. <style type="text/css">
  5. html,
  6. body {
  7. margin: 0;
  8. padding: 0;
  9. }
  10. .container {
  11. width: 100%;
  12. min-height: 100vh;
  13. background: url({:asset('/img/frontend/singlepage/images/bg.png')}) no-repeat top center/100% 2.5rem;
  14. background-color: rgba(255, 210, 87, 1);
  15. overflow: hidden;
  16. padding-bottom: 0.27rem;
  17. }
  18. .box {
  19. width: 3.41rem;
  20. min-height: 5.98rem;
  21. background: rgba(254, 250, 235, 1);
  22. box-shadow: 0px 3px 9px 0px rgba(255, 175, 46, 1);
  23. border-radius: 0.1rem;
  24. margin: 2.5rem auto 0;
  25. position: relative;
  26. padding-bottom: 0.15rem;
  27. box-sizing: border-box;
  28. }
  29. .top {
  30. width: 3.41rem;
  31. height: 0.5rem;
  32. position: absolute;
  33. background: url({:asset('/img/frontend/singlepage/images/time_content.png')}) no-repeat center center/100% 100%;
  34. transform: translateY(-30%);
  35. -webkit-transform: translateY(-30%);
  36. -o-transform: translateY(-30%);
  37. -ms-transform: translateY(-30%);
  38. -moz-transform: translateY(-30%);
  39. }
  40. .time-icon {
  41. position: absolute;
  42. font-size: 0.16rem;
  43. font-family: PingFang SC;
  44. font-weight: 500;
  45. color: rgba(255, 255, 255, 1);
  46. top: 0.08rem;
  47. left: 0.7rem;
  48. }
  49. .time-icon::before {
  50. content: "";
  51. width: 0.23rem;
  52. height: 0.23rem;
  53. background: url({:asset('/img/frontend/singlepage/images/time.png')}) no-repeat center center/100% 100%;
  54. position: absolute;
  55. left: -0.26rem;
  56. top: -0.005rem;
  57. }
  58. .time-item {
  59. font-size: 0.17rem;
  60. font-family: PingFang SC;
  61. font-weight: 500;
  62. color: rgba(201, 36, 3, 1);
  63. position: absolute;
  64. top: 0.08rem;
  65. left: 1.83rem;
  66. }
  67. .time-min.time-item {
  68. left: 2.21rem;
  69. }
  70. .time-sec.time-item {
  71. left: 2.6rem;
  72. }
  73. .book-list {
  74. padding-top: 0.46rem;
  75. }
  76. .book-item {
  77. width: 3.19rem;
  78. height: 1.68rem;
  79. border-radius: 0.08rem;
  80. background: rgba(255, 240, 201, 1);
  81. border: 0.01rem solid rgba(254, 212, 137, 1);
  82. font-size: 0;
  83. margin: 0 auto;
  84. box-sizing: border-box;
  85. padding: 0.16rem 0.1rem 0 0.1rem;
  86. margin-bottom: 0.15rem;
  87. }
  88. .book-item:last-of-type {
  89. margin-bottom: 0;
  90. }
  91. .img {
  92. width: 0.94rem;
  93. height: 1.3rem;
  94. display: inline-block;
  95. }
  96. .img img,.img .true_img {
  97. width: 0.94rem;
  98. height: 1.3rem;
  99. border-radius: 0.04rem;
  100. }
  101. .right {
  102. width: 1.82rem;
  103. float: right;
  104. }
  105. .book-name {
  106. font-family: PingFang SC;
  107. font-weight: 500;
  108. color: rgba(138, 39, 18, 1);
  109. font-size: 0.17rem;
  110. white-space: nowrap;
  111. overflow: hidden;
  112. text-overflow: ellipsis;
  113. }
  114. .book-desc {
  115. font-size: 0.14rem;
  116. font-family: PingFang SC;
  117. font-weight: 400;
  118. color: rgba(138, 39, 18, 1);
  119. line-height: 0.17rem;
  120. margin-top: 0.12rem;
  121. display: -webkit-box;
  122. -webkit-box-orient: vertical;
  123. -webkit-line-clamp: 3;
  124. overflow: hidden;
  125. }
  126. .book-footer {
  127. width: 100%;
  128. height: 0.3rem;
  129. line-height: 0.3rem;
  130. background-color: rgba(252, 169, 33, 1);
  131. border-radius: 0.15rem;
  132. margin-top: 0.16rem;
  133. font-size: 0.13rem;
  134. font-family: PingFang SC;
  135. font-weight: 400;
  136. color: rgba(255, 255, 255, 1);
  137. padding-left: 0.24rem;
  138. box-sizing: border-box;
  139. position: relative;
  140. }
  141. .book-footer::before {
  142. content: '';
  143. width: 0.17rem;
  144. height: 0.17rem;
  145. position: absolute;
  146. margin-top: 0.065rem;
  147. margin-left: -0.18rem;
  148. background: url({:asset('/img/frontend/singlepage/images/hot.png')}) center center/0.17rem 0.17rem;
  149. }
  150. .book-footer .btn {
  151. width: 0.74rem;
  152. height: 0.3rem;
  153. line-height: 0.3rem;
  154. text-align: center;
  155. border-radius: 0.15rem;
  156. background: linear-gradient(60deg, rgba(255, 90, 61, 1), rgba(255, 65, 33, 1));
  157. position: absolute;
  158. right: -0.05rem;
  159. top: 0;
  160. }
  161. .tip {
  162. padding: 0.18rem;
  163. box-sizing: border-box;
  164. }
  165. .tip-title {
  166. font-size: 0.17rem;
  167. font-family: Lantinghei SC;
  168. font-weight: 600;
  169. color: rgba(120, 16, 6, 1);
  170. opacity: 0.9;
  171. margin-bottom: 0.05rem;
  172. }
  173. .tip-content {
  174. font-size: 0.13rem;
  175. font-family: Lantinghei SC;
  176. font-weight: 600;
  177. color: rgba(120, 16, 6, 0.7);
  178. line-height: 0.19rem;
  179. }
  180. .pop{
  181. width: 100%;
  182. height: 100%;
  183. position: fixed;
  184. left: 0;
  185. top: 0;
  186. background:rgba(0,0,0,0.7);
  187. display: none;
  188. }
  189. .pop-box{
  190. width: 3.15rem;
  191. height: 2.55rem;
  192. background:rgba(255,255,255,1);
  193. border-radius: 0.12rem;
  194. position: relative;
  195. left: 50%;
  196. top: 50%;
  197. transform: translateX(-50%) translateY(-50%);
  198. -webkit-transform: translateX(-50%) translateY(-50%);
  199. -o-transform: translateX(-50%) translateY(-50%);
  200. -ms-transform: translateX(-50%) translateY(-50%);
  201. -moz-transform: translateX(-50%) translateY(-50%);
  202. }
  203. .pop-title{
  204. width: 2.84rem;
  205. height: 0.65rem;
  206. background: url({:asset('/img/frontend/singlepage/images/pop_title.png')}) no-repeat center center/100% 100%;
  207. position: absolute;
  208. left: 0.16rem;
  209. top: -0.325rem;
  210. font-family:PingFang-SC-Bold,PingFang-SC;
  211. font-weight:bold;
  212. color:rgba(81,61,61,1);
  213. font-size: 0.18rem;
  214. line-height: 0.52rem;
  215. text-align: center;
  216. }
  217. .pop-img{
  218. width: 1rem;
  219. height: 1.12rem;
  220. background: url({:asset('/img/frontend/singlepage/images/pop_icon.png')}) no-repeat center center/100% 100%;
  221. position: absolute;
  222. left: 1.07rem;
  223. top: 0.32rem;
  224. }
  225. .pop-btn{
  226. width: 2.58rem;
  227. height: 0.38rem;
  228. text-align: center;
  229. line-height: 0.38rem;
  230. background:rgba(255,180,115,1);
  231. border-radius: 0.19rem;
  232. font-size:0.18rem;
  233. font-family:PingFang-SC-Medium,PingFang-SC;
  234. font-weight:500;
  235. color:rgba(255,255,255,1);
  236. position: absolute;
  237. left: 0.28rem;
  238. bottom: 0.2rem;
  239. }
  240. </style>
  241. {/block}
  242. {block name="zepto"}
  243. <!-- 这是zepto插件 -->
  244. {/block}
  245. {block name="menu"}{/block}
  246. {block name="main"}
  247. <div class="container">
  248. <div class="box">
  249. <div class="top">
  250. <div class="time-icon">距离活动结束: </div>
  251. <div class="time-item time-hour">00</div>
  252. <div class="time-item time-min">00</div>
  253. <div class="time-item time-sec">00</div>
  254. </div>
  255. <div class="book-list">
  256. {volist name="data.resource" id="vo" key="k" length='3'}
  257. <div class="book-item">
  258. <div class="img">
  259. <img class="true_img" src="{$vo.book_img}" alt="">
  260. </div>
  261. <div class="right">
  262. <div class="book-name">{$vo.book_name}</div>
  263. <div class="book-desc">
  264. {$vo.description}
  265. </div>
  266. <div class="book-footer">
  267. {$vo.read_num}人已购买
  268. <div class="btn {if condition='$vo.is_pay eq 1'} buy_book {else/} re_but_box {/if}" data-business_line="0" data-activity-id="0" data-goods-id="{$vo.goods_id}" data-money="{$vo.money}" data-book_id="{$vo.book_id}" data-goods-category="0">立即阅读</div>
  269. </div>
  270. </div>
  271. </div>
  272. {/volist}
  273. </div>
  274. </div>
  275. <div class="tip">
  276. <div class="tip-title">温馨提示</div>
  277. <div class="tip-content">
  278. {:nl2br($data.bottom_tips)}
  279. </div>
  280. </div>
  281. </div>
  282. <input type="hidden" class="c-url" value="{$channelUrl}">
  283. <div class="pop">
  284. <div class="pop-box">
  285. <div class="pop-title">充值成功</div>
  286. <div class="pop-img"></div>
  287. <div class="pop-btn pay_book">立即阅读</div>
  288. </div>
  289. </div>
  290. {/block}
  291. {block name="js"}
  292. <script>
  293. //活动结束
  294. if ({$data.end_time} <= 0){
  295. $('.pop .pop-title').text('活动结束');
  296. $('.pop .pay_book').text('去看书');
  297. $('.pop .pay_book').addClass('buy_book');
  298. $('.pop .pay_book').removeClass('pay_book');
  299. $('.pop').show();
  300. }
  301. function countTime(obj) {
  302. /**
  303. * 倒计时函数
  304. * @obj传入对参数对象
  305. * @obj.seconds 传入的倒计时秒数,需计算当前时间到结束时间所差秒数
  306. * @obj.fn 传入的后续的函数操作
  307. *
  308. */
  309. function add0(n) {
  310. return n > 9 ? n : '0' + n;
  311. }
  312. var timer, result;
  313. var seconds = parseInt(obj.seconds / 1000)
  314. clearInterval(timer)
  315. if (seconds <= 0) {
  316. return 0 + ' 天 ' + 0 + ' 小时 ' + 0 + ' 分 ' + 0 + ' 秒';
  317. }
  318. var time = seconds; //秒数
  319. function freedjs() {
  320. var d = parseInt(time / 86400);
  321. time %= 86400;
  322. var h = parseInt(time / 3600);
  323. time %= 3600;
  324. var m = parseInt(time / 60);
  325. var s = time % 60;
  326. result = add0(d) + ' 天 ' + add0(h) + ' 小时 ' + add0(m) + ' 分 ' + add0(s) + ' 秒';
  327. obj.fn && obj.fn({
  328. day: add0(d),
  329. hour: add0(h),
  330. min: add0(m),
  331. sec: add0(s)
  332. })
  333. }
  334. freedjs();
  335. timer = setInterval(function () {
  336. seconds--;
  337. time = seconds;
  338. if (time < 1) {
  339. clearInterval(timer);
  340. }
  341. freedjs();
  342. }, 1000)
  343. }
  344. countTime({
  345. seconds: {$data.end_time},
  346. fn: function(obj){
  347. $('.time-hour').html(obj.hour)
  348. $('.time-min').html(obj.min)
  349. $('.time-sec').html(obj.sec)
  350. }
  351. })
  352. </script>
  353. <script type="text/javascript" src="{:asset('/js/frontend/recharge/singlepage_pay.js')}"></script>
  354. {/block}