share.ejs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta http-equiv="x-ua-compatible" content="ie=edge">
  5. <title>Art Number Coloring</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <meta name="description" content="Free Coloring Pages Paint Online!">
  8. <meta name="keywords" content="color, paint, app, ios, android, game">
  9. <meta property="og:site_name" content="art.pcoloring.com">
  10. <meta property="og:title" content="Art Number Coloring">
  11. <meta property="og:description" content="Free Coloring Pages Paint Online!">
  12. <meta property="og:image" content="<%= imageUrl %>">
  13. <meta property="og:type" content="website">
  14. <!-- MARK: Universal Link / Android App Link 的核心配置 -->
  15. <!-- 这些 meta 标签的值应该是完整的 HTTPS 链接,Facebook 会识别并尝试拉起 App -->
  16. <meta property="og:url" content="<%= applink %>" /> <!-- **Universal Link 路径** -->
  17. <meta property="al:ios:url" content="<%= applink %>" /> <!-- **Universal Link 路径** -->
  18. <meta property="al:ios:app_store_id" content="1575480118" /> <!-- **iOS App Store ID** -->
  19. <meta property="al:ios:app_name" content="Art Number Coloring Book" /> <!-- **iOS 应用名称** -->
  20. <meta property="al:android:package" content="com.pcoloring.art.puzzle.color.by.number" /> <!-- **Android 包名** -->
  21. <meta property="al:android:url" content="<%= applink %>" /> <!-- ** Universal Link 路径** -->
  22. <meta property="al:android:app_name" content="Art Number Coloring Book" /> <!-- **Android 应用名称** -->
  23. <meta name="apple-itunes-app" content="app-id=1575480118">
  24. <link rel="icon" href="/assets/icon/favicon.ico" type="image/x-icon">
  25. <link rel="apple-touch-icon" sizes="180x180" href="/assets/icon/icon.png">
  26. <style>
  27. :root {
  28. --primary-color: #ff6b6b;
  29. --secondary-color: #4ecdc4;
  30. --accent-color: #ffd166;
  31. --background-color: #f9f9f9;
  32. --text-color: #333;
  33. --light-text: #666;
  34. --border-color: #e0e0e0;
  35. }
  36. body {
  37. font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  38. display: flex;
  39. flex-direction: column; /* 垂直方向排列子元素 */
  40. justify-content: center; /* 垂直居中 */
  41. align-items: center; /* 水平居中 */
  42. min-height: 100vh; /* 最小高度为视口高度,确保垂直居中 */
  43. margin: 0;
  44. padding: 20px;
  45. box-sizing: border-box; /* 盒模型为边框盒 */
  46. background-color: var(--background-color);
  47. color: var(--text-color);
  48. line-height: 1.6;
  49. }
  50. /* 父容器,用于包裹图片和 Canvas,并使其相对定位 */
  51. .image-canvas-container {
  52. position: relative;
  53. max-width: 90%; /* 限制容器最大宽度 */
  54. height: auto;
  55. display: inline-block; /* 确保容器根据图片尺寸收缩 */
  56. box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); /* 添加阴影效果 */
  57. border-radius: 12px; /* 圆角 */
  58. overflow: hidden; /* 隐藏超出容器的内容 */
  59. }
  60. /* 图片样式:使其响应式并填充容器 */
  61. .image-canvas-container img {
  62. position: relative;
  63. display: block; /* 移除图片底部空白 */
  64. max-width: 100%; /* 最大宽度为父容器的100% */
  65. height: auto; /* 高度自动调整,保持图片比例 */
  66. border-radius: 12px; /* 与容器相同的圆角 */
  67. z-index: 100;
  68. }
  69. /* Canvas 样式:绝对定位,与图片完全重叠 */
  70. .image-canvas-container canvas {
  71. position: absolute;
  72. top: 0;
  73. left: 0;
  74. width: 100%;
  75. height: 100%;
  76. border-radius: 12px; /* 与容器相同的圆角 */
  77. z-index: 50;
  78. }
  79. .btn {
  80. display: inline-block;
  81. background-color: var(--primary-color);
  82. color: white;
  83. border: none;
  84. padding: 10px 20px;
  85. border-radius: 5px;
  86. font-size: 1.1rem;
  87. font-weight: 500;
  88. cursor: pointer;
  89. transition: background-color 0.3s ease;
  90. text-decoration: none;
  91. text-align: center;
  92. margin-right: 10px;
  93. margin-bottom: 10px;
  94. }
  95. .btn:hover {
  96. background-color: #ff4d4d;
  97. }
  98. .btn-secondary {
  99. background-color: var(--secondary-color);
  100. }
  101. .btn-secondary:hover {
  102. background-color: #37b0a8;
  103. }
  104. .play-button {
  105. position: absolute;
  106. display: block;
  107. top: 50%;
  108. left: 50%;
  109. transform: translate(-50%, -50%);
  110. width: 80px;
  111. height: 80px;
  112. background-color: rgba(255, 107, 107, 0.8);
  113. border-radius: 50%;
  114. display: flex;
  115. align-items: center;
  116. justify-content: center;
  117. transition: all 0.3s ease;
  118. z-index: 0;
  119. }
  120. .play-button:hover {
  121. background-color: rgba(255, 107, 107, 1);
  122. transform: translate(-50%, -50%) scale(1.1);
  123. }
  124. .play-button::after {
  125. content: "";
  126. width: 0;
  127. height: 0;
  128. border-top: 15px solid transparent;
  129. border-bottom: 15px solid transparent;
  130. border-left: 25px solid white;
  131. margin-left: 5px;
  132. }
  133. .buttons {
  134. width: 100%;
  135. max-width: 550px;
  136. display: flex;
  137. flex-wrap: wrap;
  138. justify-content: space-between;
  139. align-items: center;
  140. margin-top: 40px;
  141. }
  142. </style>
  143. <script type="module" crossorigin src="/assets/share-BWPVpJpF.js"></script>
  144. <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-B5Qt9EMX.js">
  145. <link rel="modulepreload" crossorigin href="/assets/WorkLayer-CuLsTjxY.js">
  146. </head>
  147. <body>
  148. <div class="image-canvas-container">
  149. <img id="poster-img" src="<%= imageUrl %>" alt="Art Number Coloring" />
  150. <canvas id="canvas"></canvas>
  151. <div id="play-button" class="play-button"></div>
  152. </div>
  153. <div class="buttons">
  154. <a href="/">Home</a>
  155. <a href="<%= downlink %>" class="btn btn-secondary">Download App</a>
  156. <a href="/coloring-page/<%= id %>">Detail>></a>
  157. </div>
  158. </div>
  159. </div>
  160. </body>
  161. </html>