ホームページ >ウェブフロントエンド >Vue.js >Vue ページ遷移アニメーションの実装と一般的なアニメーション効果

Vue ページ遷移アニメーションの実装と一般的なアニメーション効果

王林
王林オリジナル
2023-06-09 16:11:591753ブラウズ

Vue は、データ駆動型のアプローチを使用する人気の JavaScript フレームワークで、開発者が強力な対話性と美しいデータ プレゼンテーションを備えた単一ページの Web アプリケーションを構築するのを支援します。 Vue には多くの便利な機能が組み込まれており、その 1 つがページ遷移アニメーションです。この記事では、Vue のトランジション アニメーション機能の使用方法と、最も一般的なアニメーション効果について説明します。

Vue ページ遷移アニメーションの実装

Vue のページ遷移アニメーションは、Vue の 300ff3b250bc578ac201dd5fb34a0004 コンポーネントと 5c8969d1376a171e8b0ec4a1c01f185d コンポーネントによって実現されます。以下では、これら 2 つのコンポーネントをそれぞれ紹介します。

300ff3b250bc578ac201dd5fb34a0004

300ff3b250bc578ac201dd5fb34a0004コンポーネントは、ラップされた要素が挿入、更新、または削除されるときに、トランジション アニメーション効果を自動的に実行できます。

このコンポーネントは、before-enterenterafter-enterenter-canceled、および # を##before-leaveleaveafter-leaveleave-canceled およびその他のフック関数を使用して、開始と終了を制御できます。そして「キャンセル」。

以下は単純な

300ff3b250bc578ac201dd5fb34a0004 アニメーション効果で、挿入時の要素の遷移アニメーションを示しています。このコンポーネントには、アニメーションの名前を指定する name 属性が必要であることに注意してください。以下の例では、アニメーション名は fade です。ここの CSS スタイルは、要素の最初と最後のトランジション アニメーション効果を定義します。

<template>
  <div>
    <button @click="show = !show">Toggle show</button>
    <transition name="fade">
      <div v-if="show">Hello Vue!</div>
    </transition>
  </div>
</template>

<script>
export default {
  data() {
    return {
      show: true,
    };
  },
};
</script>

<style>
.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.5s;
}
.fade-enter,
.fade-leave-to {
  opacity: 0;
}
</style>

5c8969d1376a171e8b0ec4a1c01f185d

5c8969d1376a171e8b0ec4a1c01f185dこのコンポーネントは 300ff3b250bc578ac201dd5fb34a0004 とよく似ていますが、同時に挿入と削除が必要なリスト項目やテーブルなどの要素に適しています。

300ff3b250bc578ac201dd5fb34a0004 コンポーネントと同様に、before-enter# などのフック関数を 5c8969d1376a171e8b0ec4a1c01f185d コンポーネントで定義できます。 ## 、 enter など

5c8969d1376a171e8b0ec4a1c01f185d

遷移コンポーネントによって生成される HTML タグのタイプを指定するには、tag 属性を指定する必要があります。また、Vue が挿入、更新、または削除された要素を正しく識別できるように、各子要素に一意のキー値が必要です。 以下の例では、ボタンがクリックされるたびに項目を追加または削除する単純なリストを示します。この例では、

5c8969d1376a171e8b0ec4a1c01f185d

コンポーネントを使用し、HTML タグ タイプを ul として指定します。リスト内の各項目には、Vue がトランジション アニメーションを正しく実行するのに役立つキー値が付属しています。 <pre class='brush:HTML;toolbar:false;'>&lt;template&gt; &lt;div&gt; &lt;button @click=&quot;shift()&quot;&gt;Add/Remove Item&lt;/button&gt; &lt;transition-group name=&quot;list&quot; tag=&quot;ul&quot;&gt; &lt;li v-for=&quot;item in items&quot; :key=&quot;item&quot;&gt;{{ item }}&lt;/li&gt; &lt;/transition-group&gt; &lt;/div&gt; &lt;/template&gt; &lt;script&gt; export default { data() { return { items: [&quot;Item 1&quot;, &quot;Item 2&quot;, &quot;Item 3&quot;, &quot;Item 4&quot;, &quot;Item 5&quot;], }; }, methods: { shift() { if (this.items.length &gt; 0) { this.items.shift(); } else { this.items.push(&quot;New Item&quot;); } }, }, }; &lt;/script&gt; &lt;style&gt; .list-enter-active, .list-leave-active { transition: all 0.5s; } .list-enter, .list-leave-to { opacity: 0; transform: translateY(30px); } &lt;/style&gt;</pre>よく使われるトランジションアニメーションエフェクト

Vueのトランジションアニメーションの使い方を紹介しました。一般的なトランジション アニメーション効果をいくつか見てみましょう。

Fade

Fade

エフェクトは、フェードアウトまたはフェードアウトに使用されます。要素の不透明度を 0 から 1、または 1 から 0 に変更します。 <pre class='brush:HTML;toolbar:false;'>&lt;transition name=&quot;fade&quot;&gt; &lt;div v-if=&quot;show&quot;&gt;Hello Vue!&lt;/div&gt; &lt;/transition&gt; &lt;style&gt; .fade-enter-active, .fade-leave-active { transition: opacity 0.5s; } .fade-enter, .fade-leave-to { opacity: 0; } &lt;/style&gt;</pre>Slide

Slide

この効果は、要素が外側にスライドしたり、片側にスライドしたりするために使用されます。要素の位置をある位置から別の位置に移動します。 <pre class='brush:HTML;toolbar:false;'>&lt;transition name=&quot;slide&quot;&gt; &lt;div v-if=&quot;show&quot;&gt;Hello Vue!&lt;/div&gt; &lt;/transition&gt; &lt;style&gt; .slide-enter-active, .slide-leave-active { transition: transform 0.5s; } .slide-enter-to, .slide-leave { transform: translateX(100%); } .slide-enter, .slide-leave-to { transform: translateX(-100%); } &lt;/style&gt;</pre>スケール

スケール

エフェクトは、要素を小さいものから大きいもの、または大きいものから小さいものにスケールするために使用されます。要素の幅と高さをあるサイズから別のサイズに縮小します。 <pre class='brush:HTML;toolbar:false;'>&lt;template&gt; &lt;div&gt; &lt;button @click=&quot;show = !show&quot;&gt;Toggle show&lt;/button&gt; &lt;transition name=&quot;scale&quot;&gt; &lt;div v-if=&quot;show&quot; class=&quot;box&quot;&gt;&lt;/div&gt; &lt;/transition&gt; &lt;/div&gt; &lt;/template&gt; &lt;style&gt; .box { width: 100px; height: 100px; background-color: red; } .scale-enter-active, .scale-leave-active { transition: transform 0.5s; } .scale-enter, .scale-leave-to { transform: scale(0); } &lt;/style&gt;</pre>Rotate

Rotate

エフェクトは、要素を軸を中心に回転させるために使用されます。要素をある角度で回転させます。 <pre class='brush:HTML;toolbar:false;'>&lt;template&gt; &lt;div&gt; &lt;button @click=&quot;show = !show&quot;&gt;Toggle show&lt;/button&gt; &lt;transition name=&quot;rotate&quot;&gt; &lt;div v-if=&quot;show&quot; class=&quot;box&quot;&gt;&lt;/div&gt; &lt;/transition&gt; &lt;/div&gt; &lt;/template&gt; &lt;style&gt; .box { width: 100px; height: 100px; background-color: red; } .rotate-enter-active, .rotate-leave-active { transition: transform 0.5s; } .rotate-enter, .rotate-leave-to { transform: rotate(180deg); } &lt;/style&gt;</pre>概要

Vue のトランジション アニメーション機能を使用すると、ページ要素が挿入、更新、または削除されたときにアニメーショントランジション効果を追加できるため、ページがより鮮やかで興味深いものになります。この記事では、Vue の

300ff3b250bc578ac201dd5fb34a0004

コンポーネントと 5c8969d1376a171e8b0ec4a1c01f185d コンポーネントを使用してトランジション アニメーションを実装する方法を紹介し、また、一般的に使用されるいくつかのトランジション アニメーション効果も紹介します。 Vue アプリケーションにアニメーション効果を追加する必要がある場合は、これらのコンポーネントを試してみるとよいでしょう。

以上がVue ページ遷移アニメーションの実装と一般的なアニメーション効果の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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