Vue のトランジション効果とアニメーショントランジションの使用例の詳細な説明

Vue のトランジション効果とアニメーショントランジションの使用例の詳細な説明

まずは例を見てみましょう

ここに画像の説明を挿入

コードは次のとおりです

<テンプレート>
  <div align="center" style="margin-top: 100px;">
    <button @click="show= !show" >テスト</button>
    <遷移>
      <div v-if="表示">
        <p>これはテキストです</p>
      </div>
    </トランジション>
  </div>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
  名前: 'transitionTest',
  データ () {
    戻る {
      表示: 真
    }
  }
}
</スクリプト>
<スタイルスコープ>
    .v-enter-active、.v-leave-active {
    遷移: すべて .5 秒;
    }
    .v-enter {
    変換: translateY(50px);
    不透明度: 0;
    }
    .v-アクティブ状態を解除{
    変換: translateY(50px);
    不透明度: .5;
    }
</スタイル>

div コンポーネントをラップし、ボタンをクリックしてアニメーション効果を実現します。これは通常、v-if、v-show、動的コンポーネント、およびコンポーネント ルート ノードで使用されます。

遷移フック関数

Transition には 6 つのフック関数が用意されており、異なる時間に対応するアニメーション効果を記述できます。以下は、これら6つのフック関数の実行時間です。

1.v-enter: 遷移開始状態に入ります。要素が挿入される前に有効になり、要素が挿入された後の次のフレームで削除されます。

2.v-enter-active: 遷移が有効になるときの状態。このクラスは、エントリ遷移のタイミング、遅延、および曲線関数を定義するために使用できます。

3.v-enter-to: 遷移の終了状態に入ります。要素が挿入されてから 1 フレーム後に有効になり (同時に v-enter が削除され)、トランジション/アニメーションが完了すると削除されます。

4.v-leave: 遷移の開始状態を終了します。終了遷移がトリガーされるとすぐに有効になり、次のフレームで削除されます。

5.v-leave-active: 退出遷移が有効になるときの状態。このクラスは、退出遷移の期間、遅延、曲線関数を定義するために使用できます。

6.v-leave-to: 遷移の終了状態を終了します。離脱トランジションがトリガーされた後の次のフレーム(v-leave が削除されるのと同時に)で有効になり、トランジション/アニメーションが完了すると削除されます。

カスタム遷移クラス名

ページにはトランジション効果が必要な箇所が複数あります。Vue が提供するデフォルトの 6 つのフック関数を使用すると、遷移する箇所すべてでトランジション効果が同じになります。さまざまな状況でさまざまなアニメーション効果を定義する必要がある場合は、各トランジション効果に固有のクラス名を定義する必要があります。解決策は、トランジション タグに name 属性を追加し、name 属性に独自のクラス名プレフィックスを記述することです。たとえば、クラス名を使用する場合は、.my-trans-leave、.my-trans-enter-to のようになります。のように:

    <トランジション名="my-trans" モード="out-in">
       <ルータービュー v-if="!$route.meta.keepAlive"></ルータービュー>
    </トランジション>

スタイル、my-trans は「.my-trans-enter-active」のプレフィックスです

<スタイル>
  .my-trans-enter-active、
  .my-trans-leave-active {
    遷移: すべて .2;
    不透明度: 1;
  }
  .my-trans-enter {
    遷移: すべて .2;
    不透明度: 0;
  }
  .my-trans-leave-to {
    遷移: すべて .2;
    不透明度: 0;
  }  
</スタイル>

遷移グループの使用

リストに対してトランジション レンダリングを実行する場合は、リストを transition-group 要素でラップする必要があります。リスト内のコンテンツをクリックすると、次のアニメーションに従って削除されます。例は次のとおりです。

ここに画像の説明を挿入

<テンプレート>
  <div class="main_css">
    <トランジショングループ名="スライド">
      <li v-for="(item,i) リスト内" :key="item.id" @click="del(i)">
        {{ item.id }} --- {{ item.name }}
      </li>
    </トランジショングループ>
  </div>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
  名前: 'transitionGroupTest',
  データ () {
    戻る {
      リスト: [{
        id: 1,
        名前: 「煮魚」
      },
      {
        id: 2,
        名前: 「フライドポテト」
      },
      {
        id: 3,
        名前: 「焼きナス」
      }
      ]
    }
  },
  メソッド: {
    デリ) {
      this.list.splice(i, 1)
    }
  }
}
</スクリプト>
<スタイルスコープ>
  .main_css {
    左マージン: 50px;
    上マージン: 50px;
  }
  .slide-enter-active {
    遷移: すべて 0.5 秒線形。
  }
  .slide-leave-active {
    遷移: すべて .1 秒線形。
  }
  .スライド-エンター{
    変換: translateX(-100%);
    不透明度: 0;
  }
  .slide-leave-to {
    変換: translateX(110%);
    不透明度: 0;
  }
</スタイル>

まとめ

トランジションやアニメーションはトランジションタグを使用して完成し、6つのフック関数が用意されています。グローバル アニメーションは app.vue にあり、トランジションは router-view コンポーネントにラップされています。例: ; ローカル変更を実現するには、トランジション タグに name 属性を追加して、トランジション クラス名を定義します。

以上がVueトランジションとアニメーショントランジションの使用例の詳しい説明です。Vueトランジションとアニメーショントランジションについてさらに詳しく知りたい方は、123WORDPRESS.COM内の他の関連記事もぜひご注目ください!

以下もご興味があるかもしれません:
  • Vue コンポーネントの transition と transition-group を使用してトランジションアニメーションを実装します。
  • Vue の複数の要素、コンポーネント、リストの遷移方法の例
  • Vue での単一ノード遷移と遷移グループリスト遷移の全体的なプロセス

<<:  MySQL ロックブロッキングの詳細な分析

>>:  WeChatアプレットのスクロールビューの改行問題を解決する

推薦する

Web コンポーネントの内部イベント コールバックと問題点の分析

目次前面に書かれたWC とは何でしょうか?現在の欠陥1. コンポーネント内部イベントのコールバック2...

MySQL マルチテーブルクエリの詳細な説明

いつも、気づかないうちに時間というのは驚くほど早く過ぎていきます。小暑が過ぎ、中暑に突入しました。太...

Ubuntu 16.04.4LTS に mininet をインストールする際に発生する問題と解決策

ミニネットMininet は軽量のソフトウェア定義ネットワークおよびテスト プラットフォームです。軽...

MySQLトリガーの使用例の詳細

MySQL トリガー構文の詳細: トリガーは、特定のテーブル内のデータが挿入、削除、または更新される...

Docker ビルド kubectl イメージ実装手順

プログラムサービスがgitlab ci/cdと統合されたk8sを使用してデプロイされている場合、gi...

時系列転位修復ケースを実装するSQL

目次1. 要件の説明2. アイデアの概要1. 延長を要求する2. アイデアの概要3. SQLコード1...

Vue の computed と watch の違いを分析する

目次1. 計算入門1.1、getとsetの使い方1.2. 計算された属性キャッシュ2. 時計の紹介3...

各グループの最新データを取得するためにMySQLベースのグループを実装する

序文:グループ化関数はグループ内の最初のデータを取得しますが、各グループ内の最新のデータを取得する必...

バックアップと削除のためにリアルタイムでステートメントを検出するMySQLトリガーの考え方の詳細な説明

問題の説明: ユーザーは、テーブルに「違反」という単語を含むフィールドが時々表示されることを要求して...

CSS 画面サイズ適応実装例

CSS 画面サイズの適応を実現するには、まず CSS3 @media メディア クエリを導入する必要...

MySQLがlocalhost経由でデータベースに接続できない問題に対する完璧な解決策

問題:あるサーバー上の PHP プログラムは、localhost アドレス経由でデータベースに接続で...

純粋な CSS ヘッダーの実装コードを修正

純粋な CSS で固定ヘッダーを実装するのが難しい主な理由は 2 つあります。まず、最大のシェアを持...

Dockerを使用してサーバー上で複数のPHPバージョンを実行する

PHP7 がリリースされてからかなり時間が経ちますが、パフォーマンスが大幅に向上したことはよく知られ...

Tomcatでcatalina.batがUTF-8に設定されている場合、コンソールに文字化けした文字が表示されます

1. catalina.bat は UTF-8 に設定する必要があります。UTF-8 に設定しないと...

Vue はネストされたルーティングメソッドの例を実装します

1. ネストされたルーティングはサブルーティングとも呼ばれます。実際のアプリケーションでは、通常、ネ...