Svelte コンポーネントによる Hamburger アイコンの実装例です。
ボタンをクリックすると open
変数の値が true になり、CSS アニメーションで×印に変化します。
1 つの .svelte
ファイルでコンパクトに実装できていい感じです。
この Hamburger
コンポーネントは、サイドバーメニューなどのコンポーネントと連携させて使うことを想定しています。
Svelte では、各コンポーネントが export している変数 (prop) に、上位コンポーネントの変数を簡単にバインドできるので、例えば次のようにして複数のコンポーネントの open
状態を連携させることができます。
もし、コンポーネントが export している 変数の名前が異なる場合(例えば Sidebar
が isOpen
という名前で公開している場合)は、次のように変数をバインドすれば OK。
<Sidebar bind:isOpen={open} />
うごく~ ٩(๑❛ᴗ❛๑)۶ わーぃ
関連記事