_transition_ は、state の変化の結果として DOM に要素が出入りする際にトリガーされます。 ブロック (例えば `{#if ...}` ブロック) が外へ transition している間、その中のすべての要素 (独自の transition を持たないものも含む) は、ブロック内のすべての transition が完了するまで DOM に保持されます。 `transition:` ディレクティブは _双方向_ transition を示します。これにより、transition の進行中でもスムーズに反転させることができることを意味しています。 ```svelte {#if visible}
fades in and out only when y changes
fades in and out when x or y change
{/if} {/if} ``` ## Built-in transitions A selection of built-in transitions can be imported from the [`svelte/transition`](svelte-transition) module. ## Transition parameters transition にはパラメータを指定することができます。 (二重の `{{中括弧}}` は特別な構文ではありません。これは式タグ内のオブジェクトリテラルです。) ```svelte {#if visible}The quick brown fox jumps over the lazy dog
{/if} ``` transition が transition オブジェクトの代わりに関数を返す場合、その関数は次のマイクロタスク内で呼び出されます。これにより、複数の transition が調整され、[クロスフェード効果](/tutorial/deferred-transitions) を実現できます。 transition 関数は、transition に関する情報を含む第3引数 `options` を受け取ります。 `options` オブジェクトで使用可能な値は以下の通りです: - `direction` - transition のタイプに応じて `in`、`out`、`both` のいずれか ## Transition events transition を持つ要素は、標準の DOM イベントに加えて次のイベントをディスパッチします: - `introstart` - `introend` - `outrostart` - `outroend` ```svelte {#if visible}(status = 'intro started')} onoutrostart={() => (status = 'outro started')} onintroend={() => (status = 'intro ended')} onoutroend={() => (status = 'outro ended')} > Flies in and out
{/if} ```