-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
347 lines (310 loc) · 31.1 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
<!DOCTYPE html><html lang="en" dir="ltr" class="2xl:text-[20px]"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="sitemap" href="/sitemap-index.xml"><link rel="shortcut icon" href="/astro/favicon.0252af4f.ico"><link rel="icon" type="image/svg+xml" href="/astro/favicon.2d7a3102.svg"><link rel="mask-icon" href="/astro/favicon.2d7a3102.svg" color="#8D46E7"><link rel="apple-touch-icon" sizes="180x180" href="/astro/apple-touch-icon.1de27c4e.png"><style is:global>
:root {
--aw-font-sans: 'Inter Variable';
--aw-font-serif: var(--aw-font-sans);
--aw-font-heading: var(--aw-font-sans);
--aw-color-primary: rgb(30 64 175);
--aw-color-secondary: rgb(30 58 138);
--aw-color-accent: rgb(109 40 217);
--aw-color-text-heading: rgb(0 0 0);
--aw-color-text-default: rgb(16 16 16);
--aw-color-text-muted: rgb(16 16 16 / 66%);
--aw-color-bg-page: rgb(255 255 255);
--aw-color-bg-page-dark: rgb(3 6 32);
::selection {background-color: lavender;}
}
.dark {
--aw-font-sans: 'Inter Variable';
--aw-font-serif: var(--aw-font-sans);
--aw-font-heading: var(--aw-font-sans);
--aw-color-primary: rgb(30 64 175);
--aw-color-secondary: rgb(30 58 138);
--aw-color-accent: rgb(109 40 217);
--aw-color-text-heading: rgb(0 0 0);
--aw-color-text-default: rgb(229 236 246);
--aw-color-text-muted: rgb(229 236 246 / 66%);
--aw-color-bg-page: var(--aw-color-bg-page-dark);
::selection {background-color: black; color: snow}
}
</style><script>(function(){const defaultTheme = "system";
function applyTheme(theme) {
if (theme === "dark") {
document.documentElement.classList.add("dark");
} else {
document.documentElement.classList.remove("dark");
}
const matches = document.querySelectorAll("[data-aw-toggle-color-scheme] > input");
if (matches && matches.length) {
matches.forEach((elem) => {
elem.checked = theme !== "dark";
});
}
}
if ((defaultTheme && defaultTheme.endsWith(":only")) || (!localStorage.theme && defaultTheme !== "system")) {
applyTheme(defaultTheme.replace(":only", ""));
} else if (
localStorage.theme === "dark" ||
(!("theme" in localStorage) && window.matchMedia("(prefers-color-scheme: dark)").matches)
) {
applyTheme("dark");
} else {
applyTheme("light");
}
})();</script><title>电脑端项目 — w550</title>
<meta name="description" content="🚀 Suitable for Startups, Small Business, Sass Websites, Professional Portfolios, Marketing Websites, Landing Pages & Blogs." />
<meta name="robots" content="index,follow" />
<link rel="canonical" href="https://w550.github.io" />
<meta property="og:title" content="电脑端项目" />
<meta property="og:description" content="🚀 Suitable for Startups, Small Business, Sass Websites, Professional Portfolios, Marketing Websites, Landing Pages & Blogs." />
<meta property="og:url" content="https://w550.github.io" />
<meta property="og:type" content="website" />
<meta property="og:image" content="https://w550.github.io/astro/default.5cdc518a_ZzJqMb.webp" />
<meta property="og:locale" content="en" />
<meta property="og:site_name" content="w550" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@onwidget" />
<meta name="twitter:creator" content="@onwidget" /><meta name="google-site-verification" content="orcPxI47GSa-cRvY11tUe6iGg2IO_RPvnA1q95iEM3M"><link rel="stylesheet" href="/astro/hoisted.149836d1.css" />
<link rel="stylesheet" href="/astro/hoisted.8d28a013.css" />
<link rel="stylesheet" href="/astro/click-through.46a7fdb2.css" />
<style>.square[data-astro-cid-d7cqodjh]{-webkit-clip-path:polygon(100% 0,100% 0%,100% 100%,100% 100%);clip-path:polygon(100% 0,100% 0%,100% 100%,100% 100%)}.line[data-astro-cid-d7cqodjh]{width:100.8%;margin-left:-.4%;-webkit-clip-path:polygon(99.6% 0,100% 0%,100% 100%,99.6% 100%);clip-path:polygon(99.6% 0,100% 0%,100% 100%,99.6% 100%)}.fill[data-astro-cid-x5dgyc3h]{-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;background-position:50%;background-repeat:no-repeat;background-size:cover}
.object-cover video{-o-object-fit:cover;object-fit:cover}
</style><script type="module" src="/astro/hoisted.7e6de2c3.js"></script></head> <body class="antialiased text-default bg-page tracking-tight"> <!-- <Announcement /> --> <header class="sticky top-0 z-40 flex-none mx-auto w-full border-b border-gray-50/0 transition-[opacity] ease-in-out" data-aw-sticky-header id="header"> <div class="absolute inset-0"></div> <div class="relative text-default py-3 px-3 md:px-6 mx-auto w-full md:flex md:justify-between max-w-7xl"> <div class="flex justify-between"> <a class="flex items-center" href="/"> <span class="self-center ml-2 rtl:ml-0 rtl:mr-2 text-2xl md:text-xl font-bold text-gray-900 whitespace-nowrap dark:text-white">
🚀 w550 </span> </a> <div class="flex items-center md:hidden"> <button class="flex flex-col h-12 w-12 rounded justify-center items-center cursor-pointer group" aria-label="Toggle Menu" data-aw-toggle-menu> <span class="sr-only">Toggle Menu</span> <span aria-hidden="true" class="h-0.5 w-6 my-1 rounded-full bg-black dark:bg-white transition ease transform duration-200 opacity-80 group-[.expanded]:rotate-45 group-[.expanded]:translate-y-2.5"></span> <span aria-hidden="true" class="h-0.5 w-6 my-1 rounded-full bg-black dark:bg-white transition ease transform duration-200 opacity-80 group-[.expanded]:opacity-0"></span> <span aria-hidden="true" class="h-0.5 w-6 my-1 rounded-full bg-black dark:bg-white transition ease transform duration-200 opacity-80 group-[.expanded]:-rotate-45 group-[.expanded]:-translate-y-2.5"></span> </button> </div> </div> <nav class="items-center w-full md:w-auto hidden md:flex text-default overflow-y-auto overflow-x-hidden md:overflow-y-visible md:overflow-x-auto md:mx-5" aria-label="Main navigation"> <ul class="flex flex-col md:flex-row md:self-center w-full md:w-auto text-xl md:text-[0.9375rem] tracking-[0.01rem] font-medium"> <li class=""> <a class="hover:text-link dark:hover:text-white px-4 py-3 flex items-centers aw-link-active" href="/"> 首页 </a> </li><li class=""> <a class="hover:text-link dark:hover:text-white px-4 py-3 flex items-centers" href="/mobile"> 手机端项目 </a> </li><li class=""> <a class="hover:text-link dark:hover:text-white px-4 py-3 flex items-centers" href="/17"> 一起唱 </a> </li> </ul> </nav> <div class="hidden md:self-center flex md:flex items-center md:mb-0 fixed w-full md:w-auto md:static justify-end left-0 rtl:left-auto rtl:right-0 bottom-0 p-3 md:p-0"> <div class="items-center flex justify-between w-full md:w-auto"> <div class="flex"> <button type="button" class="text-muted dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="Toggle between Dark and Light mode" data-aw-toggle-color-scheme><svg width="1em" height="1em" viewBox="0 0 24 24" class="w-6 h-6 md:w-5 md:h-5 md:inline-block" data-icon="tabler:sun"> <symbol id="ai:tabler:sun"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12a4 4 0 1 0 8 0a4 4 0 1 0-8 0m-5 0h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7l-.7.7m0 11.4l.7.7m-12.1-.7l-.7.7"/></symbol><use xlink:href="#ai:tabler:sun"></use> </svg></button> <a class="text-muted dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" aria-label="RSS Feed" href="/rss.xml"> <svg width="1em" height="1em" viewBox="0 0 24 24" class="w-5 h-5" data-icon="tabler:rss"> <symbol id="ai:tabler:rss"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 19a1 1 0 1 0 2 0a1 1 0 1 0-2 0M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9"/></symbol><use xlink:href="#ai:tabler:rss"></use> </svg> </a> </div> </div> </div> </div> </header> <main> <div class="relative dom_69486" data-astro-cid-x5dgyc3h> <div class="h-screen w-full relative max-w-full overflow-hidden" data-astro-cid-x5dgyc3h> <video autoplay muted="muted" loop webkit-playsinline="" playsinline="" class="video-js !bg-transparent w-full h-full object-cover"> <source src="/astro/index.dece5d27.mp4"> </video> <div class="fillBg absolute top-0 w-full h-full text-center bg-white flex justify-center items-center" data-astro-cid-x5dgyc3h> <div class="fill text-[40px] md:text-[160px] w-full h-full flex items-center justify-center font-bold select-none whitespace-nowrap" style="background-image:url(/astro/首页.961cab36_rass1.webp)" data-astro-cid-x5dgyc3h> 让汽车更智能 </div> </div> </div> </div> <script>(function(){const domId = "dom_69486";
function loaded() {
var end = window.innerHeight * 2;
var el = document.querySelector(`.${domId}`);
if (!el) return;
let video = el.querySelector(`video`); //as HTMLVideoElement;
let fill = el.querySelector(`.fill`); //as HTMLElement;
var style = window.getComputedStyle(fill, null).getPropertyValue('font-size');
var size = parseFloat(style);
let fillBg = el.querySelector(`.fillBg`); //as HTMLElement;
let hasMore = el.querySelector(`.more`);
window.gsap?.timeline({
scrollTrigger: {
trigger: el,
start: 'top top',
// markers: true,
pin: true,
end: `+=${end}`,
scrub: true,
onUpdate: ({ progress }) => {
fill.style.fontSize = Math.trunc(progress * 1100) + size + 'px';
progress >= 0.4 ? fillBg.classList.add('opacity-0') : fillBg.classList.remove('opacity-0');
if (video) {
if (progress >= 0.4) {
video.play();
} else {
video.pause();
video.currentTime = 0;
}
}
if (hasMore) {
if (progress >= 0.75) {
hasMore.classList.remove('invisible');
hasMore?.classList.add('!opacity-100');
hasMore?.classList.add('!-translate-y-20');
} else {
hasMore.classList.add('invisible');
hasMore.classList.remove('!opacity-100');
hasMore.classList.remove('!-translate-y-20');
}
}
},
},
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', loaded);
} else {
loaded();
}
})();</script> <!-- 将消息存储为数据属性。 --><div class="dom_8346"> <div class="pinSwiper"> <div class="swiper-wrapper"> <div class="swiper-slide" style="background:radial-gradient(circle, #E1E4E8, #8E98A8)"> <section class="relative not-prose scroll-mt-[72px]"> <div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true"> <div class="absolute inset-0"> </div> </div> <div class="relative px-4 md:px-6 py-12 md:py-16 lg:py-20 text-default max-w-7xl mx-auto h-screen flex flex-col items-center justify-center"> <div class="mb-8 md:mx-auto md:mb-12 text-center max-w-3xl"><h2 class="font-bold leading-tighter tracking-tighter font-heading text-heading text-3xl md:text-4xl">多颜色切换</h2><p class="mt-4 text-muted text-xl">深空灰</p></div> <div aria-hidden="true"> <div class="object-cover rounded-xl mx-auto"> <picture> <source srcset="/astro/[email protected]_1Q1zGM.avif, /astro/[email protected]_1Q1zGM.avif 1x, /astro/[email protected]_1gcyPH.avif 1.5x, /astro/[email protected]_23lVJw.avif 2x" type="image/avif"><source srcset="/astro/[email protected]_1eaUXF.webp, /astro/[email protected]_1eaUXF.webp 1x, /astro/[email protected]_2mJWGS.webp 1.5x, /astro/[email protected]_212dJn.webp 2x" type="image/webp"> <img src="/astro/[email protected]_1jubLI.png" srcset="/astro/[email protected]_1jubLI.png 1x, /astro/[email protected]_ZE9bw.png 1.5x, /astro/[email protected]_Z1OyH74.png 2x" alt="多颜色切换" class="max-w-full object-cover rounded-xl mx-auto hidden md:block" width="740" height="460" loading="lazy" decoding="async"> </picture> <picture> <source srcset="/astro/[email protected]_Z1bjJcp.avif, /astro/[email protected]_Z1bjJcp.avif 1x, /astro/[email protected]_RF3Kd.avif 1.5x, /astro/[email protected]_2vYl3B.avif 2x" type="image/avif"><source srcset="/astro/[email protected]_Z2rJCpm.webp, /astro/[email protected]_Z2rJCpm.webp 1x, /astro/[email protected]_ZnJOrJ.webp 1.5x, /astro/[email protected]_1vG8sm.webp 2x" type="image/webp"> <img src="/astro/[email protected]_Z4vWM3.png" srcset="/astro/[email protected]_Z4vWM3.png 1x, /astro/[email protected]_1YsPaz.png 1.5x, /astro/[email protected]_2tAsok.png 2x" alt="多颜色切换" class="object-cover mx-auto max-w-full md:hidden" width="375" height="240" loading="lazy" decoding="async"> </picture> </div> </div> <div aria-hidden="true"> </div> </div> </section> </div><div class="swiper-slide" style="background:radial-gradient(circle, #94AAC2, #E7F0FD)"> <section class="relative not-prose scroll-mt-[72px]"> <div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true"> <div class="absolute inset-0"> </div> </div> <div class="relative px-4 md:px-6 py-12 md:py-16 lg:py-20 text-default max-w-7xl mx-auto h-screen flex flex-col items-center justify-center"> <div class="mb-8 md:mx-auto md:mb-12 text-center max-w-3xl"><h2 class="font-bold leading-tighter tracking-tighter font-heading text-heading text-3xl md:text-4xl">多图片切换</h2><p class="mt-4 text-muted text-xl">午夜蓝</p></div> <div aria-hidden="true"> <div class="object-cover rounded-xl mx-auto"> <picture> <source srcset="/astro/[email protected]_Z2jGR1K.avif, /astro/[email protected]_Z2jGR1K.avif 1x, /astro/[email protected]_Z13oTjH.avif 1.5x, /astro/[email protected]_23N9Pc.avif 2x" type="image/avif"><source srcset="/astro/[email protected]_28DC44.webp, /astro/[email protected]_28DC44.webp 1x, /astro/[email protected]_38twt.webp 1.5x, /astro/[email protected]_21tqP3.webp 2x" type="image/webp"> <img src="/astro/[email protected]_2dWRR7.png" srcset="/astro/[email protected]_2dWRR7.png 1x, /astro/[email protected]_Z2kgClV.png 1.5x, /astro/[email protected]_Z1O7u1o.png 2x" alt="多图片切换" class="max-w-full object-cover rounded-xl mx-auto hidden md:block" width="740" height="460" loading="lazy" decoding="async"> </picture> <picture> <source srcset="/astro/[email protected]_3OAfX.avif, /astro/[email protected]_3OAfX.avif 1x, /astro/[email protected]_27OodA.avif 1.5x, /astro/[email protected]_1zGKDz.avif 2x" type="image/avif"><source srcset="/astro/[email protected]_Z1cAhVY.webp, /astro/[email protected]_Z1cAhVY.webp 1x, /astro/[email protected]_Qov0D.webp 1.5x, /astro/[email protected]_zoy3k.webp 2x" type="image/webp"> <img src="/astro/[email protected]_1aCmFk.png" srcset="/astro/[email protected]_1aCmFk.png 1x, /astro/[email protected]_Z1PyXaY.png 1.5x, /astro/[email protected]_1xiRYi.png 2x" alt="多图片切换" class="object-cover mx-auto max-w-full md:hidden" width="375" height="240" loading="lazy" decoding="async"> </picture> </div> </div> <div aria-hidden="true"> </div> </div> </section> </div><div class="swiper-slide" style="background:radial-gradient(circle, #F3AFB8, #FBD1D6)"> <section class="relative not-prose scroll-mt-[72px]"> <div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true"> <div class="absolute inset-0"> </div> </div> <div class="relative px-4 md:px-6 py-12 md:py-16 lg:py-20 text-default max-w-7xl mx-auto h-screen flex flex-col items-center justify-center"> <div class="mb-8 md:mx-auto md:mb-12 text-center max-w-3xl"><h2 class="font-bold leading-tighter tracking-tighter font-heading text-heading text-3xl md:text-4xl">还有一款要粉的</h2><p class="mt-4 text-muted text-xl">星芒粉</p></div> <div aria-hidden="true"> <div class="object-cover rounded-xl mx-auto"> <picture> <source srcset="/astro/[email protected]_ZWoazP.avif, /astro/[email protected]_ZWoazP.avif 1x, /astro/[email protected]_AuuNh.avif 1.5x, /astro/[email protected]_1iaDkj.avif 2x" type="image/avif"><source srcset="/astro/[email protected]_Z1zeOiW.webp, /astro/[email protected]_Z1zeOiW.webp 1x, /astro/[email protected]_1H2SEs.webp 1.5x, /astro/[email protected]_1fPUka.webp 2x" type="image/webp"> <img src="/astro/[email protected]_Z1tUyuT.png" srcset="/astro/[email protected]_Z1tUyuT.png 1x, /astro/[email protected]_ZFmddW.png 1.5x, /astro/[email protected]_2ur8hE.png 2x" alt="还有一款要粉的" class="max-w-full object-cover rounded-xl mx-auto hidden md:block" width="740" height="460" loading="lazy" decoding="async"> </picture> <picture> <source srcset="/astro/[email protected]_ZwsLBw.avif, /astro/[email protected]_ZwsLBw.avif 1x, /astro/[email protected]_1ww1l6.avif 1.5x, /astro/[email protected]_GfnkP.avif 2x" type="image/avif"><source srcset="/astro/[email protected]_Z1MSEOt.webp, /astro/[email protected]_Z1MSEOt.webp 1x, /astro/[email protected]_g6889.webp 1.5x, /astro/[email protected]_Zj2Ofp.webp 2x" type="image/webp"> <img src="/astro/[email protected]_zjYMP.png" srcset="/astro/[email protected]_zjYMP.png 1x, /astro/[email protected]_Z2qRl3t.png 1.5x, /astro/[email protected]_DQuFy.png 2x" alt="还有一款要粉的" class="object-cover mx-auto max-w-full md:hidden" width="375" height="240" loading="lazy" decoding="async"> </picture> </div> </div> <div aria-hidden="true"> </div> </div> </section> </div> </div> </div> </div> <script>(function(){const domId = "dom_8346";
function loaded() {
var el = document.querySelector(`.${domId}`);
let hasSwiper = el?.querySelector('.pinSwiper');
var swiper;
if (hasSwiper) {
swiper = new window.Swiper(hasSwiper, {
modules: [window.EffectFade],
effect: 'fade',
});
}
const end = hasSwiper ? swiper.slides.length * window.innerHeight : window.innerHeight; // (option.end || 1) * window.innerHeight;
window.gsap.timeline({
scrollTrigger: {
trigger: el,
start: 'top top',
// markers: true, //false,
pin: true,
end: `+=${end}`,
scrub: true,
onUpdate: ({ progress }) => {
if (hasSwiper && swiper) {
let p = 1 / swiper.slides.length;
let i = 0;
while (p * i < progress) {
i++;
}
swiper.slideTo(i - 1);
}
},
},
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', loaded);
} else {
loaded();
}
})();</script> <section class="relative not-prose scroll-mt-[72px]"> <div class="absolute inset-0 pointer-events-none -z-[1]" aria-hidden="true"> <div class="absolute inset-0"> </div> </div> <div class="relative px-4 md:px-6 py-12 md:py-16 lg:py-20 text-default max-w-7xl mx-auto diffsss"> <div class="mb-8 md:mx-auto md:mb-12 text-center max-w-3xl"><h2 class="font-bold leading-tighter tracking-tighter font-heading text-heading text-3xl md:text-4xl">图片切换</h2><p class="mt-4 text-muted text-xl">图片细节对比分析</p></div> <div> <div class="w-full flex justify-center items-center"> <div class="max-w-screen-lg"> <section class="relative mx-auto" data-astro-cid-d7cqodjh> <picture> <source srcset="/astro/[email protected]_Zt84Ya.avif, /astro/[email protected]_Zt84Ya.avif 1x, /astro/[email protected]_2jP2Lu.avif 1.5x, /astro/[email protected]_ZdxQjR.avif 2x" type="image/avif"><source srcset="/astro/[email protected]_Z2sdfzg.webp, /astro/[email protected]_Z2sdfzg.webp 1x, /astro/[email protected]_1NAofE.webp 1.5x, /astro/[email protected]_tmL6E.webp 2x" type="image/webp"> <img src="/astro/[email protected]_Z1x2PIH.png" srcset="/astro/[email protected]_Z1x2PIH.png 1x, /astro/[email protected]_Z9iPrF.png 1.5x, /astro/[email protected]_4Liu.png 2x" alt="" class="max-w-full hidden md:block" width="960" height="465" loading="lazy" decoding="async"> </picture> <picture> <source srcset="/astro/[email protected]_ValtD.avif, /astro/[email protected]_ValtD.avif 1x, /astro/[email protected]_Z251YmF.avif 1.5x, /astro/[email protected]_Z1t6EkR.avif 2x" type="image/avif"><source srcset="/astro/[email protected]_jjGKw.webp, /astro/[email protected]_jjGKw.webp 1x, /astro/[email protected]_2njuI9.webp 1.5x, /astro/[email protected]_Z1vqnl1.webp 2x" type="image/webp"> <img src="/astro/[email protected]_oCWyz.png" srcset="/astro/[email protected]_oCWyz.png 1x, /astro/[email protected]_2sCKwc.png 1.5x, /astro/[email protected]_ZgPanw.png 2x" alt="" class="max-w-full md:hidden" width="375" height="450" loading="lazy" decoding="async"> </picture> <div class="absolute top-0 w-full h-full z-10 square" data-astro-cid-d7cqodjh> <picture> <source srcset="/astro/[email protected]_eicuv.avif, /astro/[email protected]_eicuv.avif 1x, /astro/[email protected]_Z11MMel.avif 1.5x, /astro/[email protected]_tl9xO.avif 2x" type="image/avif"><source srcset="/astro/[email protected]_Z1JLX5A.webp, /astro/[email protected]_Z1JLX5A.webp 1x, /astro/[email protected]_Z1x2qKb.webp 1.5x, /astro/[email protected]_1bgLYl.webp 2x" type="image/webp"> <img src="/astro/[email protected]_ZOByf2.png" srcset="/astro/[email protected]_ZOByf2.png 1x, /astro/[email protected]_1zfslq.png 1.5x, /astro/[email protected]_GXMbb.png 2x" alt="" class="max-w-full hidden md:block" width="960" height="465" loading="lazy" decoding="async"> </picture> <picture> <source srcset="/astro/[email protected]_2eDPMp.avif, /astro/[email protected]_2eDPMp.avif 1x, /astro/[email protected]_ZLxu3T.avif 1.5x, /astro/[email protected]_Z2c6eSy.avif 2x" type="image/avif"><source srcset="/astro/[email protected]_1BNc4i.webp, /astro/[email protected]_1BNc4i.webp 1x, /astro/[email protected]_Z1oo8M1.webp 1.5x, /astro/[email protected]_Z2epWSH.webp 2x" type="image/webp"> <img src="/astro/[email protected]_1H7rRl.png" srcset="/astro/[email protected]_1H7rRl.png 1x, /astro/[email protected]_Z1j4RXX.png 1.5x, /astro/[email protected]_ZYOJVd.png 2x" alt="" class="max-w-full md:hidden" width="375" height="450" loading="lazy" decoding="async"> </picture> </div> <div class="absolute top-0 w-full h-full z-10 line bg-white" data-astro-cid-d7cqodjh></div> </section> <script>(function(){const trigger = "diffsss";
function loaded() {
const end = window.innerHeight;
let el = document.querySelector(`.${trigger}`);
let square = el.querySelector('.square');
let line = el.querySelector('.line');
const tl = window.gsap.timeline({
scrollTrigger: {
trigger: el,
start: 'top top',
end: `+=${end}`,
pin: true,
// markers: true, //false,
scrub: true,
},
});
tl.to(
square,
{
webkitClipPath: 'polygon(0% 0, 100% 0%, 100% 100%, 0% 100%)',
},
'wipe'
);
tl.to(
line,
{
webkitClipPath: 'polygon(0% 0, 0.4% 0%, 0.4% 100%, 0% 100%)',
},
'wipe'
);
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', loaded);
} else {
loaded();
}
})();</script> </div> </div> </div> <div aria-hidden="true"> </div> </div> </section> </main> <footer class="relative border-t border-gray-200 dark:border-slate-800 not-prose"> <div class="dark:bg-dark absolute inset-0 pointer-events-none" aria-hidden="true"></div> <div class="relative max-w-7xl mx-auto px-4 sm:px-6 dark:text-slate-300"> <div class="grid grid-cols-12 gap-4 gap-y-8 sm:gap-8 py-8 md:py-12"> <div class="col-span-12 lg:col-span-4"> <div class="mb-2"> <a class="inline-block font-bold text-xl" href="/">w550</a> </div> <div class="text-sm text-muted"> </div> </div> <div class="col-span-6 md:col-span-3 lg:col-span-2"> <div class="dark:text-gray-300 font-medium mb-2">国内项目</div> <ul class="text-sm"> <li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="https://www.70mai.com.cn" target="_blank"> 70mai国内官网 </a> </li><li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="https://hiigge.com.cn" target="_blank"> HIIGGE官网 </a> </li> </ul> </div><div class="col-span-6 md:col-span-3 lg:col-span-2"> <div class="dark:text-gray-300 font-medium mb-2">海外项目</div> <ul class="text-sm"> <li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="https://www.70mai.com" target="_blank"> 70mai海外官网 </a> </li><li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="https://www.maimo.co" target="_blank"> Maimo </a> </li><li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="https://powerstation.70mai.com" target="_blank"> Power Station </a> </li><li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="https://dashcam.70mai.com" target="_blank"> Dash Cams </a> </li> </ul> </div><div class="col-span-6 md:col-span-3 lg:col-span-2"> <div class="dark:text-gray-300 font-medium mb-2">小程序</div> <ul class="text-sm"> <li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="/miniprogram/BLE-Key" target="_blank"> 电动车蓝牙钥匙 </a> </li><li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="/miniprogram/Qrcode" target="_blank"> 挪车码 </a> </li><li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="/miniprogram/shop" target="_blank"> 电商 </a> </li> </ul> </div><div class="col-span-6 md:col-span-3 lg:col-span-2"> <div class="dark:text-gray-300 font-medium mb-2">H5</div> <ul class="text-sm"> <li class="mb-2"> <a class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" href="/h5" target="_blank"> 樱花之旅 </a> </li> </ul> </div> </div> <div class="md:flex md:items-center md:justify-between py-6 md:py-8"> <div class="text-sm mr-4 dark:text-slate-400"> 2024 </div> </div> </div> </footer> <script>(function(){const defaultTheme = "system";
function applyTheme(theme) {
if (theme === 'dark') {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark');
}
}
if ((defaultTheme && defaultTheme.endsWith(':only')) || (!localStorage.theme && defaultTheme !== 'system')) {
applyTheme(defaultTheme.replace(':only', ''));
} else if (
localStorage.theme === 'dark' ||
(!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)
) {
applyTheme('dark');
} else {
applyTheme('light');
}
function attachEvent(selector, event, fn) {
const matches = typeof selector === 'string' ? document.querySelectorAll(selector) : selector;
if (matches && matches.length) {
matches.forEach((elem) => {
elem.addEventListener(event, (e) => fn(e, elem), false);
});
}
}
window.onload = function () {
let lastKnownScrollPosition = window.scrollY;
let ticking = true;
attachEvent('#header nav', 'click', function () {
document.querySelector("[data-aw-toggle-menu]")?.classList.remove("expanded");
document.body.classList.remove("overflow-hidden");
document.getElementById("header")?.classList.remove("h-screen");
document.getElementById("header")?.classList.remove("expanded");
document.getElementById("header")?.classList.remove("bg-page");
document.querySelector("#header nav")?.classList.add("hidden");
document.querySelector("#header > div > div:last-child")?.classList.add("hidden");
});
attachEvent('[data-aw-toggle-menu]', 'click', function (_, elem) {
elem.classList.toggle("expanded");
document.body.classList.toggle("overflow-hidden");
document.getElementById("header")?.classList.toggle("h-screen");
document.getElementById("header")?.classList.toggle("expanded");
document.getElementById("header")?.classList.toggle("bg-page");
document.querySelector("#header nav")?.classList.toggle("hidden");
document.querySelector("#header > div > div:last-child")?.classList.toggle("hidden");
});
attachEvent('[data-aw-toggle-color-scheme]', 'click', function () {
if (defaultTheme.endsWith(':only')) {
return;
}
document.documentElement.classList.toggle('dark');
localStorage.theme = document.documentElement.classList.contains('dark') ? 'dark' : 'light';
});
attachEvent('[data-aw-social-share]', 'click', function (_, elem) {
const network = elem.getAttribute('data-aw-social-share');
const url = encodeURIComponent(elem.getAttribute('data-aw-url'));
const text = encodeURIComponent(elem.getAttribute('data-aw-text'));
let href;
switch (network) {
case 'facebook':
href = `https://www.facebook.com/sharer.php?u=${url}`;
break;
case 'twitter':
href = `https://twitter.com/intent/tweet?url=${url}&text=${text}`;
break;
case 'linkedin':
href = `https://www.linkedin.com/shareArticle?mini=true&url=${url}&title=${text}`;
break;
case 'whatsapp':
href = `https://wa.me/?text=${text}%20${url}`;
break;
case 'mail':
href = `mailto:?subject=%22${text}%22&body=${text}%20${url}`;
break;
default:
return;
}
const newlink = document.createElement('a');
newlink.target = '_blank';
newlink.href = href;
newlink.click();
});
function appyHeaderStylesOnScroll() {
const header = document.querySelector("#header[data-aw-sticky-header]");
if (lastKnownScrollPosition > 60 && !header.classList.contains('scroll')) {
document.getElementById('header').classList.add('scroll');
} else if (lastKnownScrollPosition <= 60 && header.classList.contains('scroll')) {
document.getElementById('header').classList.remove('scroll');
}
ticking = false;
}
appyHeaderStylesOnScroll();
attachEvent([document], 'scroll', function () {
lastKnownScrollPosition = window.scrollY;
if (!ticking) {
window.requestAnimationFrame(() => {
appyHeaderStylesOnScroll();
});
ticking = true;
}
});
};
window.onpageshow = function () {
document.documentElement.classList.add('motion-safe:scroll-smooth');
const elem = document.querySelector('[data-aw-toggle-menu]');
if (elem) {
elem.classList.remove('expanded');
}
document.body.classList.remove("overflow-hidden");
document.getElementById("header")?.classList.remove("h-screen");
document.getElementById("header")?.classList.remove("expanded");
document.querySelector("#header nav")?.classList.add("hidden");
};
})();</script> </body> </html>