跳至主要內容

你現在已經完成 Svelte 教學,可以開始建構應用程式了。

本教學的接下來兩個部分將重點介紹 SvelteKit,這是一個用於建立各種形狀和大小的應用程式的完整框架。

如果你感到資訊過載,還沒有準備好學習 SvelteKit 教學,請別擔心!你可以使用現有的 Svelte 知識,而無需學習所有 SvelteKit 的內容。只需在你的終端機中執行此命令並按照提示操作...

npx sv create

...並開始編輯 src/routes/+page.svelte。當你準備好時,點擊下面的連結繼續你的旅程。

在 GitHub 上編輯此頁面

上一頁 下一頁
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
<script>
	let characters = ['🥳', '🎉', '✨'];
 
	let confetti = $state(new Array(100)
		.fill()
		.map((_, i) => {
			return {
				character:
					characters[i % characters.length],
				x: Math.random() * 100,
				y: -20 - Math.random() * 100,
				r: 0.1 + Math.random() * 1
			};
		})
		.sort((a, b) => a.r - b.r));
 
	$effect(() => {
		let frame = requestAnimationFrame(function loop() {
			frame = requestAnimationFrame(loop);
 
			for (const confetto of confetti) {
				confetto.y += 0.3 * confetto.r;
				if (confetto.y > 120) confetto.y = -20;
			}
		});
 
		return () => {
			cancelAnimationFrame(frame);
		}
	});
</script>
 
{#each confetti as c}
	<span
		style:left="{c.x}%"
		style:top="{c.y}%"
		style:scale={c.r}
	>
		{c.character}
	</span>
{/each}
 
<style>
	span {
		position: absolute;
		font-size: 5vw;
		user-select: none;
	}
 
	:global(body) {
		overflow: hidden;
	}
</style>