目次
カスタムSVELTE遷移を作成します
あなたの最初のカスタムSvelteトランジション
こんにちはカスタムトランジション!
結論
ホームページ ウェブフロントエンド CSSチュートリアル 最初のカスタムSvelteトランジションを作成します

最初のカスタムSvelteトランジションを作成します

Mar 15, 2025 am 11:08 AM

最初のカスタムSvelteトランジションを作成します

SvelteのTransition APIは、カスタムトランジションの作成など、DOMに入るまたは離れるコンポーネントをアニメーション化する強力な方法を提供します。デフォルトでCSSアニメーションを活用すると、最適なパフォーマンスが保証されます。基本的な構文は簡単です:<element transition:transitionfunction=""></element> 。また、一方通行の遷移には、またはin out指令を使用することもできます。

Svelteのsvelte/transition Packageは、カスタムコードを作成せずに多様なアニメーション効果を使用するためにsvelte/easingを使用して、7つの事前に構築されたトランジション関数を簡単にカスタマイズできます。これらを試して、可能性を把握します。

スベルトの紹介が必要ですか?包括的な概要を利用できます。

カスタムSVELTE遷移を作成します

事前に構築されたオプションを超えたより細かい制御のために、Svelteは特定の規則の対象となるカスタムトランジション関数を定義できます。文書化されているように、API構造は次のとおりです。

 transition =(node:htmlelement、params:any)=> {
  遅延?:番号、
  期間?:番号、
  緩和?:( T:number)=> number、
  css?:(t:number、u:number)=> string、
  tick?:( t:number、u:number)=> void
}
ログイン後にコピー

遷移関数はDOMノードを受信し、アニメーションパラメーターを使用してオブジェクトを返します。重要なことに、 cssまたはtick機能が含まれます。

css関数は、アニメーションを定義するCSS文字列(たとえば、変換または不透明な変更)を返します。 tick機能は完全なJavaScriptコントロールを提供しますが、CSSアニメーションをバイパスするため、パフォーマンスコストがあります。

csstick両方がパラメーターt (エントリで0.00〜1.00、出口で1.00〜0.00)とu (1 t )を使用します。たとえば、 transform: scale(${t})エントリで0から1までスムーズにスケールし、出口で逆転します。

説明するためにカスタムトランジションを構築しましょう。

あなたの最初のカスタムSvelteトランジション

Svelte #ifブロックを使用して要素のDOMの存在を制御するための簡単なトグルから始めます(覚えておいてください、遷移はDOMエントリ/出口でのみ発生することを忘れないでください)。

<script>
  let showing = true;
</script>

<label for="showing">
  表示
</label>
<input type="checkbox" bind:checked="{showing}" id="showing">

{#if shoping}
  <h1 id="こんにちはカスタムトランジション">こんにちはカスタムトランジション!</h1>
{/もし}
ログイン後にコピー

チェックボックスの切り替えは、スタークの外観/消失を示しています。次に、カスタムトランジション関数を追加しましょう。

<script>
  let showing = true;
  function whoosh(node) {
    console.log(node);
  }
</script>

<label for="showing">
  表示
</label>
<input type="checkbox" bind:checked="{showing}" id="showing">

{#if shoping}
  <h1 id="こんにちはカスタムトランジション">こんにちはカスタムトランジション!</h1>
{/もし}
ログイン後にコピー

トグリングは、要素をコンソールにログに記録し、接続を確認します。これをアニメーションで強化します。スケーリングのためのcss関数を作成しましょう。

<script>
  function swoop() {
    return {
      duration: 1000,
      css: (t) => `transform: scale(${t})`
    }
  }
  let showing = true;
</script>

<label for="showing">
  表示
</label>
<input type="checkbox" bind:checked="{showing}" id="showing">

{#if shoping}
  <h1 id="こんにちはカスタムトランジション">こんにちはカスタムトランジション!</h1>
{/もし}
ログイン後にコピー
ログイン後にコピー

要素は今や拡大しますが、突然です。スムーズなアニメーションにtを使用する:

<script>
  function swoop() {
    return {
      duration: 1000,
      css: (t) => `transform: scale(${t})`
    }
  }
  let showing = true;
</script>

<label for="showing">
  表示
</label>
<input type="checkbox" bind:checked="{showing}" id="showing">

{#if shoping}
  <h1 id="こんにちはカスタムトランジション">こんにちはカスタムトランジション!</h1>
{/もし}
ログイン後にコピー
ログイン後にコピー

「急降下」効果については、横からアニメーション化してtranslateXを追加しましょう。

<script>
  function swoop() {
    return {
      duration: 1000,
      css: (t, u) => `transform: scale(${t}) translateX(${u * 100}%)`
    }
  }
  let showing = true;
</script>

<label for="showing">
  表示
</label>
<input type="checkbox" bind:checked="{showing}" id="showing">

{#if shoping}
  <h1 id="こんにちはカスタムトランジション">こんにちはカスタムトランジション!</h1>
{/もし}
ログイン後にコピー

ここでは、 u (t of t of tの逆)がtranslateXを制御し、スムーズな動きを確保します。

最後に、緩和機能を追加しましょう。

<script>
  import { elasticOut } from 'svelte/easing';

  function swoop() {
    return {
      duration: 1000,
      easing: elasticOut,
      css: (t, u) => `transform: scale(${t}) translateX(${u * 100}%)`
    }
  }
  let showing = true;
</script>

<label for="showing">
  表示
</label>
<input type="checkbox" bind:checked="{showing}" id="showing">

{#if shoping}
  <h1 id="こんにちはカスタムトランジション">こんにちはカスタムトランジション!</h1>
{/もし}
ログイン後にコピー

結論

これで、カスタムSvelte Transitionを作成しました!これは単なる出発点です。より高度な手法については、ドキュメントとチュートリアルを調べてください。 tuの相互作用を理解することは、動的なアニメーションを作成するための鍵です。

以上が最初のカスタムSvelteトランジションを作成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Googleフォント変数フォント Googleフォント変数フォント Apr 09, 2025 am 10:42 AM

Google Fontsが新しいデザイン(ツイート)を展開したようです。最後の大きな再設計と比較して、これははるかに反復的です。違いをほとんど伝えることができません

HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 Apr 11, 2025 am 11:29 AM

プロジェクトにカウントダウンタイマーが必要だったことはありますか?そのようなことのために、プラグインに手を伸ばすのは自然なことかもしれませんが、実際にはもっとたくさんあります

HTMLデータ属性ガイド HTMLデータ属性ガイド Apr 11, 2025 am 11:50 AM

HTML、CSS、およびJavaScriptのデータ属性について知りたいと思っていたことはすべて。

CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? Apr 05, 2025 pm 11:24 PM

要素の数が固定されていない場合、CSSを介して指定されたクラス名の最初の子要素を選択する方法。 HTML構造を処理するとき、あなたはしばしば異なる要素に遭遇します...

フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? Apr 05, 2025 pm 05:51 PM

フレックスレイアウトの紫色のスラッシュ領域に関する質問フレックスレイアウトを使用すると、開発者ツールなどの混乱する現象に遭遇する可能性があります(D ...

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

SVGでタータンパターンを生成する静的サイトを作成する方法 SVGでタータンパターンを生成する静的サイトを作成する方法 Apr 09, 2025 am 11:29 AM

タータンは、スコットランド、特にファッショナブルなキルトに通常関連する模様のある布です。 Tartanify.comでは、5,000を超えるTartanを集めました

See all articles