hookehuyr

style(AdPage): 调整分享按钮位置并优化样式

将分享按钮从左上角移至右上角,避免与系统胶囊按钮重叠
同时调整按钮内边距,移除多余外边距,提升视觉一致性
1 /* 广告页面样式 */ 1 /* 广告页面样式 */
2 .ad-page { 2 .ad-page {
3 - width: 100vw; 3 + width: 100vw;
4 - height: 100vh; 4 + height: 100vh;
5 - position: relative; 5 + position: relative;
6 - overflow: hidden; 6 + overflow: hidden;
7 } 7 }
8 8
9 .ad-background { 9 .ad-background {
10 - position: absolute; 10 + position: absolute;
11 - top: 0; 11 + top: 0;
12 - left: 0; 12 + left: 0;
13 - width: 100vw; 13 + width: 100vw;
14 - height: 100vh; 14 + height: 100vh;
15 - object-fit: cover; 15 + object-fit: cover;
16 - object-position: center; 16 + object-position: center;
17 - z-index: 1; 17 + z-index: 1;
18 } 18 }
19 19
20 .share-button-container { 20 .share-button-container {
21 - position: absolute; 21 + position: absolute;
22 - top: 30rpx; 22 + top: 30rpx; /* 避开胶囊按钮 */
23 - left: 30rpx; 23 + right: 30rpx;
24 - z-index: 10; 24 + z-index: 10;
25 } 25 }
26 26
27 .share-button { 27 .share-button {
28 - padding: 1rpx 24rpx; 28 + margin: 0;
29 - background: rgba(0, 0, 0, 0.6); 29 + padding: 10rpx 24rpx;
30 - color: white; 30 + background: rgba(0, 0, 0, 0.6);
31 - border: none; 31 + color: white;
32 - border-radius: 32rpx; 32 + border: none;
33 - font-size: 24rpx; 33 + border-radius: 32rpx;
34 - font-weight: 500; 34 + font-size: 24rpx;
35 - backdrop-filter: blur(10rpx); 35 + font-weight: 500;
36 - -webkit-backdrop-filter: blur(10rpx); 36 + backdrop-filter: blur(10rpx);
37 - box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.15); 37 + -webkit-backdrop-filter: blur(10rpx);
38 - transition: all 0.3s ease; 38 + box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.15);
39 - 39 + transition: all 0.3s ease;
40 - &:active { 40 +
41 - transform: scale(0.95); 41 + &:active {
42 - background: rgba(0, 0, 0, 0.8); 42 + transform: scale(0.95);
43 - } 43 + background: rgba(0, 0, 0, 0.8);
44 + }
44 } 45 }
45 46
46 /* 网络错误弹窗样式 */ 47 /* 网络错误弹窗样式 */
47 .network-error-popup { 48 .network-error-popup {
48 - position: fixed; 49 + position: fixed;
50 + top: 0;
51 + left: 0;
52 + width: 100vw;
53 + height: 100vh;
54 + z-index: 1000;
55 + display: flex;
56 + align-items: center;
57 + justify-content: center;
58 +
59 + .popup-overlay {
60 + position: absolute;
49 top: 0; 61 top: 0;
50 left: 0; 62 left: 0;
51 - width: 100vw; 63 + width: 100%;
52 - height: 100vh; 64 + height: 100%;
53 - z-index: 1000; 65 + background: rgba(0, 0, 0, 0.5);
54 - display: flex; 66 + backdrop-filter: blur(4rpx);
55 - align-items: center; 67 + -webkit-backdrop-filter: blur(4rpx);
56 - justify-content: center; 68 + }
57 - 69 +
58 - .popup-overlay { 70 + .popup-content {
59 - position: absolute; 71 + position: relative;
60 - top: 0; 72 + width: 600rpx;
61 - left: 0; 73 + background: white;
62 - width: 100%; 74 + border-radius: 24rpx;
63 - height: 100%; 75 + padding: 60rpx 40rpx 40rpx;
64 - background: rgba(0, 0, 0, 0.5); 76 + text-align: center;
65 - backdrop-filter: blur(4rpx); 77 + box-shadow: 0 20rpx 60rpx rgba(0, 0, 0, 0.15);
66 - -webkit-backdrop-filter: blur(4rpx); 78 +
79 + .popup-icon {
80 + font-size: 80rpx;
81 + margin-bottom: 20rpx;
82 + }
83 +
84 + .popup-title {
85 + font-size: 36rpx;
86 + font-weight: 600;
87 + color: #333;
88 + margin-bottom: 20rpx;
89 + }
90 +
91 + .popup-message {
92 + font-size: 28rpx;
93 + color: #666;
94 + line-height: 1.5;
95 + margin-bottom: 30rpx;
67 } 96 }
68 - 97 +
69 - .popup-content { 98 + .popup-steps {
70 - position: relative; 99 + text-align: left;
71 - width: 600rpx; 100 + margin-bottom: 40rpx;
72 - background: white; 101 +
73 - border-radius: 24rpx; 102 + .step-item {
74 - padding: 60rpx 40rpx 40rpx; 103 + font-size: 26rpx;
104 + color: #888;
105 + line-height: 1.6;
106 + margin-bottom: 10rpx;
107 + padding-left: 20rpx;
108 + }
109 + }
110 +
111 + .popup-buttons {
112 + display: flex;
113 + gap: 20rpx;
114 +
115 + .popup-button {
116 + flex: 1;
117 + height: 80rpx;
118 + line-height: 80rpx;
75 text-align: center; 119 text-align: center;
76 - box-shadow: 0 20rpx 60rpx rgba(0, 0, 0, 0.15); 120 + border-radius: 12rpx;
77 - 121 + font-size: 28rpx;
78 - .popup-icon { 122 + font-weight: 500;
79 - font-size: 80rpx; 123 + transition: all 0.3s ease;
80 - margin-bottom: 20rpx; 124 +
81 - } 125 + &.cancel {
82 - 126 + background: #f5f5f5;
83 - .popup-title { 127 + color: #666;
84 - font-size: 36rpx; 128 +
85 - font-weight: 600; 129 + &:active {
86 - color: #333; 130 + background: #e8e8e8;
87 - margin-bottom: 20rpx; 131 + }
88 - }
89 -
90 - .popup-message {
91 - font-size: 28rpx;
92 - color: #666;
93 - line-height: 1.5;
94 - margin-bottom: 30rpx;
95 - }
96 -
97 - .popup-steps {
98 - text-align: left;
99 - margin-bottom: 40rpx;
100 -
101 - .step-item {
102 - font-size: 26rpx;
103 - color: #888;
104 - line-height: 1.6;
105 - margin-bottom: 10rpx;
106 - padding-left: 20rpx;
107 - }
108 } 132 }
109 - 133 +
110 - .popup-buttons { 134 + &.confirm {
111 - display: flex; 135 + background: #ff6b35;
112 - gap: 20rpx; 136 + color: white;
113 - 137 +
114 - .popup-button { 138 + &:active {
115 - flex: 1; 139 + background: #e55a2b;
116 - height: 80rpx; 140 + }
117 - line-height: 80rpx;
118 - text-align: center;
119 - border-radius: 12rpx;
120 - font-size: 28rpx;
121 - font-weight: 500;
122 - transition: all 0.3s ease;
123 -
124 - &.cancel {
125 - background: #f5f5f5;
126 - color: #666;
127 -
128 - &:active {
129 - background: #e8e8e8;
130 - }
131 - }
132 -
133 - &.confirm {
134 - background: #ff6b35;
135 - color: white;
136 -
137 - &:active {
138 - background: #e55a2b;
139 - }
140 - }
141 - }
142 } 141 }
142 + }
143 } 143 }
144 + }
144 } 145 }
145 146
146 .loading-container { 147 .loading-container {
147 - position: absolute; 148 + position: absolute;
148 - top: 0; 149 + top: 0;
149 - left: 0; 150 + left: 0;
150 - width: 100%; 151 + width: 100%;
151 - height: 100%; 152 + height: 100%;
152 - display: flex; 153 + display: flex;
153 - align-items: center; 154 + align-items: center;
154 - justify-content: center; 155 + justify-content: center;
155 - background: rgba(255, 255, 255, 0.9); 156 + background: rgba(255, 255, 255, 0.9);
156 - z-index: 20; 157 + z-index: 20;
157 } 158 }
158 159
159 .loading-text { 160 .loading-text {
160 - font-size: 32rpx; 161 + font-size: 32rpx;
161 - color: #666; 162 + color: #666;
162 - font-weight: 500; 163 + font-weight: 500;
163 - } 164 +}
164 165
165 - // 骨架屏样式 166 +// 骨架屏样式
166 - .skeleton-container { 167 +.skeleton-container {
167 - position: absolute; 168 + position: absolute;
168 - top: 0; 169 + top: 0;
169 - left: 0; 170 + left: 0;
170 - width: 100%; 171 + width: 100%;
171 - height: 100vh; 172 + height: 100vh;
172 - z-index: 1; 173 + z-index: 1;
173 - } 174 +}
174 175
175 - .skeleton-image { 176 +.skeleton-image {
176 - width: 100%; 177 + width: 100%;
177 - height: 100%; 178 + height: 100%;
178 - background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); 179 + background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
179 - background-size: 200% 100%; 180 + background-size: 200% 100%;
180 - animation: skeleton-loading 1.5s infinite; 181 + animation: skeleton-loading 1.5s infinite;
181 - position: relative; 182 + position: relative;
182 - overflow: hidden; 183 + overflow: hidden;
183 - display: flex; 184 + display: flex;
184 - flex-direction: column; 185 + flex-direction: column;
185 - justify-content: center; 186 + justify-content: center;
186 - align-items: center; 187 + align-items: center;
187 - } 188 +}
188 189
189 - .skeleton-shimmer { 190 +.skeleton-shimmer {
190 - position: absolute; 191 + position: absolute;
191 - top: 0; 192 + top: 0;
192 - left: -100%; 193 + left: -100%;
193 - width: 100%; 194 + width: 100%;
194 - height: 100%; 195 + height: 100%;
195 - background: linear-gradient( 196 + background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
196 - 90deg, 197 + animation: shimmer 1.5s infinite;
197 - transparent, 198 +}
198 - rgba(255, 255, 255, 0.4),
199 - transparent
200 - );
201 - animation: shimmer 1.5s infinite;
202 - }
203 199
204 - .skeleton-text { 200 +.skeleton-text {
205 - position: relative; 201 + position: relative;
206 - z-index: 2; 202 + z-index: 2;
207 - text-align: center; 203 + text-align: center;
208 - color: #666; 204 + color: #666;
205 +}
206 +
207 +.loading-title {
208 + font-size: 36rpx;
209 + font-weight: 600;
210 + margin-bottom: 16rpx;
211 + opacity: 0.8;
212 +}
213 +
214 +.loading-subtitle {
215 + font-size: 28rpx;
216 + opacity: 0.6;
217 + animation: pulse 2s infinite;
218 +}
219 +
220 +@keyframes skeleton-loading {
221 + 0% {
222 + background-position: 200% 0;
209 } 223 }
224 + 100% {
225 + background-position: -200% 0;
226 + }
227 +}
210 228
211 - .loading-title { 229 +@keyframes shimmer {
212 - font-size: 36rpx; 230 + 0% {
213 - font-weight: 600; 231 + left: -100%;
214 - margin-bottom: 16rpx;
215 - opacity: 0.8;
216 } 232 }
233 + 100% {
234 + left: 100%;
235 + }
236 +}
217 237
218 - .loading-subtitle { 238 +@keyframes pulse {
219 - font-size: 28rpx; 239 + 0%,
240 + 100% {
220 opacity: 0.6; 241 opacity: 0.6;
221 - animation: pulse 2s infinite;
222 } 242 }
223 - 243 + 50% {
224 - @keyframes skeleton-loading { 244 + opacity: 0.3;
225 - 0% {
226 - background-position: 200% 0;
227 - }
228 - 100% {
229 - background-position: -200% 0;
230 - }
231 } 245 }
246 +}
232 247
233 - @keyframes shimmer { 248 +// 手动刷新样式
234 - 0% { 249 +.manual-refresh-container {
235 - left: -100%; 250 + position: absolute;
236 - } 251 + top: 0;
237 - 100% { 252 + left: 0;
238 - left: 100%; 253 + width: 100%;
239 - } 254 + height: 100vh;
240 - } 255 + display: flex;
256 + justify-content: center;
257 + align-items: center;
258 + background-color: #f8f9fa;
259 + z-index: 2;
260 +}
241 261
242 - @keyframes pulse { 262 +.refresh-content {
243 - 0%, 100% { 263 + text-align: center;
244 - opacity: 0.6; 264 + padding: 60rpx 40rpx;
245 - } 265 + background: white;
246 - 50% { 266 + border-radius: 16rpx;
247 - opacity: 0.3; 267 + box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.1);
248 - } 268 + margin: 0 40rpx;
249 - } 269 + max-width: 600rpx;
270 +}
250 271
251 - // 手动刷新样式 272 +.refresh-icon {
252 - .manual-refresh-container { 273 + font-size: 80rpx;
253 - position: absolute; 274 + margin-bottom: 24rpx;
254 - top: 0; 275 +}
255 - left: 0;
256 - width: 100%;
257 - height: 100vh;
258 - display: flex;
259 - justify-content: center;
260 - align-items: center;
261 - background-color: #f8f9fa;
262 - z-index: 2;
263 - }
264 276
265 - .refresh-content { 277 +.refresh-title {
266 - text-align: center; 278 + font-size: 36rpx;
267 - padding: 60rpx 40rpx; 279 + font-weight: 600;
268 - background: white; 280 + color: #333;
269 - border-radius: 16rpx; 281 + margin-bottom: 16rpx;
270 - box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.1); 282 +}
271 - margin: 0 40rpx;
272 - max-width: 600rpx;
273 - }
274 283
275 - .refresh-icon { 284 +.refresh-subtitle {
276 - font-size: 80rpx; 285 + font-size: 28rpx;
277 - margin-bottom: 24rpx; 286 + color: #666;
278 - } 287 + margin-bottom: 40rpx;
288 + line-height: 1.5;
289 +}
279 290
280 - .refresh-title { 291 +.refresh-steps {
281 - font-size: 36rpx; 292 + text-align: left;
282 - font-weight: 600; 293 + background: #f8f9fa;
283 - color: #333; 294 + border-radius: 12rpx;
284 - margin-bottom: 16rpx; 295 + padding: 32rpx;
285 - } 296 + margin-top: 20rpx;
297 +}
286 298
287 - .refresh-subtitle { 299 +.step-item {
288 - font-size: 28rpx; 300 + font-size: 30rpx;
289 - color: #666; 301 + color: #333;
290 - margin-bottom: 40rpx; 302 + line-height: 1.6;
291 - line-height: 1.5; 303 + margin-bottom: 16rpx;
292 - }
293 304
294 - .refresh-steps { 305 + &:last-child {
295 - text-align: left; 306 + margin-bottom: 0;
296 - background: #f8f9fa;
297 - border-radius: 12rpx;
298 - padding: 32rpx;
299 - margin-top: 20rpx;
300 } 307 }
308 +}
301 309
302 - .step-item { 310 +// 错误提示样式
303 - font-size: 30rpx; 311 +.error-container {
304 - color: #333; 312 + position: absolute;
305 - line-height: 1.6; 313 + top: 0;
306 - margin-bottom: 16rpx; 314 + left: 0;
307 - 315 + width: 100%;
308 - &:last-child { 316 + height: 100vh;
309 - margin-bottom: 0; 317 + display: flex;
310 - } 318 + flex-direction: column;
311 - } 319 + justify-content: center;
320 + align-items: center;
321 + background-color: #f5f5f5;
322 + z-index: 1;
323 +}
312 324
313 - // 错误提示样式 325 +.error-text {
314 - .error-container { 326 + font-size: 32rpx;
315 - position: absolute; 327 + color: #999;
316 - top: 0; 328 + margin-bottom: 40rpx;
317 - left: 0; 329 +}
318 - width: 100%;
319 - height: 100vh;
320 - display: flex;
321 - flex-direction: column;
322 - justify-content: center;
323 - align-items: center;
324 - background-color: #f5f5f5;
325 - z-index: 1;
326 - }
327 330
328 - .error-text { 331 +.retry-button {
329 - font-size: 32rpx; 332 + padding: 20rpx 40rpx;
330 - color: #999; 333 + background-color: #007aff;
331 - margin-bottom: 40rpx; 334 + color: white;
332 - } 335 + border-radius: 8rpx;
336 + font-size: 28rpx;
337 + cursor: pointer;
333 338
334 - .retry-button { 339 + &:active {
335 - padding: 20rpx 40rpx; 340 + background-color: #0056cc;
336 - background-color: #007aff;
337 - color: white;
338 - border-radius: 8rpx;
339 - font-size: 28rpx;
340 - cursor: pointer;
341 -
342 - &:active {
343 - background-color: #0056cc;
344 - }
345 } 341 }
342 +}
......