ホームページ ウェブフロントエンド Vue.js Vue3のアニメーション機能を詳しく解説:かっこいいアニメーション効果を実現するアプリ

Vue3のアニメーション機能を詳しく解説:かっこいいアニメーション効果を実現するアプリ

Jun 18, 2023 pm 11:34 PM
vue 応用 アニメーション機能

インターネット テクノロジーの継続的な発展に伴い、ユーザー エクスペリエンスを向上させるためにクールなアニメーション効果を表示する必要がある Web サイトやアプリケーションがますます増えています。最新の JavaScript フレームワークとして、Vue3 はアニメーション機能を含む多くの優れたツールキットを開発者に提供します。この記事では、Vue3のアニメーション機能の応用と実装方法、かっこいいアニメーション効果を実現する方法を詳しく紹介します。

  1. はじめに

Vue3 は、Composition API を通じて次のような強力なアニメーション関数ライブラリを提供します。

  • useTransition :遷移関数
  • useAnimation : アニメーション関数
  • useTween : イージング関数
  • useSpring: Spring 関数

これらの関数を使用すると、状態が変化したときのグラデーション、スライド、回転、その他の効果など、さまざまな複雑なアニメーション効果を Web ページに簡単に実装できます。

  1. useTransition 遷移関数

useTransition は Vue3 の遷移関数で、2 つの状態間で使用されます。次のような遷移を行います。表示から非表示へ、上から下へスライドインなど。その基本的な使用法は次のとおりです。

import { useTransition } from 'vue'

const transitions = useTransition(show, {
  // 定义三个阶段的动画
  enter: '',
  leave: '',
  appear: ''
})
ログイン後にコピー

ここで、show は、現在の状態を表示するかどうかを示すブール値です。 3 つのパラメータ enterleaveAppearl は、3 段階で実行されるトランジション アニメーションを定義する文字列です。

簡単な例:

<template>
  <div class="container">
    <button @click="toggle">Toggle</button>
    <transition 
      appear
      v-for="msg in msgs"
      :key="msg.id"
      :css="false"
      :enter-class="'animate__animated animate__fadeInDown'"
      :leave-class="'animate__animated animate__fadeOutUp'"
    >
      <div class="alert" :class="'alert-' + msg.type">
        {{ msg.message }}
      </div>
    </transition>
  </div>
</template>

<script>
import { reactive, toRefs, ref, useTransition } from 'vue';

export default {
  setup() {
    const data = reactive({
      msgs: []
    })

    const toggle = () => {
      data.msgs.unshift({
        id: Math.random(),
        type: 'success',
        message: '这是一条消息'
      })
    }

    const transitions = useTransition(data.msgs, {
      enterActiveClass: 'animate__animated animate__fadeInDown',
      leaveActiveClass: 'animate__animated animate__fadeOutUp'
    })

    return {
      ...toRefs(data),
      transitions,
      toggle
    }
  }
}
</script>
ログイン後にコピー

「切り替え」ボタンをクリックして show 値の変更を制御すると、プロンプト ボックス領域が表示または非表示になります。トランジション機能。この例では、animate.css ライブラリを使用してアニメーション効果を実現します。

  1. useAnimation アニメーション関数

アニメーション関数はトランジション関数とは異なり、回転や拡大縮小などのさまざまな半径をカスタマイズできます。さまざまなアニメーション効果は、useAnimation を使用して定義できます。これは、次のパラメータを含む関数をパラメータとして受け取ります:

  • initial: アニメーションの開始時
  • #from
  • to
  • ##duration
  • の初期状態: アニメーション期間
  • lay
  • : アニメーション遅延時間
  • ease
  • : イージング関数
  • 簡単な例:
import { useAnimation } from 'vue'

const animations = useAnimation(() => ({
  top: 0,
  left: 0,
  backgroundColor: 'red',
  width: '100px',
  height: '100px',
  translateY: 0,
  rotate: '0deg'
}), {
  from: {
    top: '100px',
    left: '100px',
    backgroundColor: 'blue',
    width: '50px',
    height: '50px',
    translateY: '200px',
    rotate: '-90deg'
  },
  to: {
    top: '200px',
    left: '200px',
    backgroundColor: 'black',
    width: '200px',
    height: '200px',
    translateY: '0px',
    rotate: '360deg'
  },
  duration: 3000,
  delay: 1000,
  ease: 'ease'
})
ログイン後にコピー

この例

initial

状態を小さな青い四角形から大きな黒い四角形に遷移させながら、そのプロパティの変更をアニメーション化するアニメーション関数を定義します。 アニメーションは

setup

で設定されているため、テンプレートを通じてその値を直接取得できないことに注意してください。テンプレートに設定する特定の値を手動で導入する必要があります。アニメーションは次のように使用する必要があります: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>&lt;template&gt; &lt;div :style=&quot;animations&quot;&gt;&lt;/div&gt; &lt;/template&gt; &lt;script&gt; import { useAnimation } from 'vue'; export default { setup() { const animations = useAnimation(() =&gt; ({ top: 0, left: 0, backgroundColor: 'red', width: '100px', height: '100px', translateY: 0, rotate: '0deg' }), { from: { top: '100px', left: '100px', backgroundColor: 'blue', width: '50px', height: '50px', translateY: '200px', rotate: '-90deg' }, to: { top: '200px', left: '200px', backgroundColor: 'black', width: '200px', height: '200px', translateY: '0px', rotate: '360deg' }, duration: 3000, delay: 1000, ease: 'ease' }) return { animations } } } &lt;/script&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>テンプレート内でアニメーションを必要とするプロパティ値を

:style

に渡して最終ターゲットを設定できます。

    useTween
  1. イージング関数
  2. イージング関数は、アニメーション効果を与えるだけでなく、アニメーションをより自然にすることもできます。 Vue3 は、弾性、減衰、スプリング、その他のイージング効果を作成するための
useTween

関数を提供します。基本的な使用法は次のとおりです。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>import { useTween } from 'vue' const tween = useTween(0, 100, { duration: 1000, delay: 0, ease: 'easeInQuad', onComplete: () =&gt; { console.log('Completed') } })</pre><div class="contentsignin">ログイン後にコピー</div></div>この例では、

easeInQuad

イージング関数を使用して、指定された時間内に値を 0 から 100 に変換します。 これは

useTween

を示す簡単な例です: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>&lt;template&gt; &lt;div&gt; &lt;div :style=&quot;{ transform: 'translateX(' + xValue + 'px)' }&quot;&gt;{{ xValue }}&lt;/div&gt; &lt;button @click=&quot;move&quot;&gt;Move&lt;/button&gt; &lt;/div&gt; &lt;/template&gt; &lt;script&gt; import { ref, useTween } from 'vue'; export default { setup() { const xValue = ref(0) const move = () =&gt; { useTween(0, 300, { duration: 1000, ease: 'easeOutElastic', onUpdate: (value) =&gt; { xValue.value = value } }) } return { xValue, move } } } &lt;/script&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>この例では、

useTween

xValue## に使用します # から移動します0 ~ 300。easeOutElastic イージング関数を使用してスプリング効果を作成します。 onUpdate コールバック関数は、value (スプリング アニメーションの最終値) を xValue に割り当て、それをテンプレート内の div にバインドします。

useSpring
    Spring 関数
  1. useSpring
は、スプリング アニメーションを実装するために使用される Vue3 の関数です。初期状態とターゲット状態を指定してアニメーションを作成し、スプリング効果を適用します。

import { useSpring } from 'vue'

const spring = useSpring({
  from: {
    opacity: 0,
    transform: 'translateX(-100px)'
  },
  to: {
    opacity: 1,
    transform: 'translateX(0px)'
  },
  config: {
    tension: 120,
    friction: 14,
    mass: 5
  }
})
ログイン後にコピー
この例では、要素を左から半透明から不透明にパンします。他のアニメーション関数と同様に、アニメーション効果を制御するために使用できるカスタマイズ オプションは他にもたくさんあります。
<template>
  <div :style="spring">
    <h1>这是一个标题</h1>
    <p>这是一段内容</p>
  </div>
</template>

<script>
import { useSpring } from 'vue';

export default {
  setup() {
    const spring = useSpring({
      from: {
        opacity: 0,
        transform: 'translateX(-100px)'
      },
      to: {
        opacity: 1,
        transform: 'translateX(0px)'
      },
      config: {
        tension: 120,
        friction: 14,
        mass: 5
      }
    })

    return {
      spring
    }
  }
}
</script>
ログイン後にコピー
テンプレートでは、

:style

属性を使用して、アニメーション要素にバインドされたスタイルを表します。この例では、スプリング アニメーションの状態を親

div に適用して、ページ全体でスプリングをアニメーション化する方法を示します。 概要

  1. Vue3 は、開発者が複雑なアニメーション効果を迅速かつ簡単に理解できるようにする一連の優れたアニメーション関数を提供します。これらの機能を使用すると、さまざまなクールなアニメーション効果を実装して、Web アプリケーションのユーザー エクスペリエンスをさらに向上させることができます。これらの関数を使用するには、
  2. setup
関数で関数を呼び出し、その状態値をコンポーネントとテンプレートにバインドするだけです。さらに、これらの機能の構成オプションを必要に応じて拡張し、さまざまな種類のアニメーション効果を実装することができます。

以上がVue3のアニメーション機能を詳しく解説:かっこいいアニメーション効果を実現するアプリの詳細内容です。詳細については、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

vue.jsでJSファイルを参照する方法 vue.jsでJSファイルを参照する方法 Apr 07, 2025 pm 11:27 PM

vue.jsでJSファイルを参照するには3つの方法があります。タグ;; mounted()ライフサイクルフックを使用した動的インポート。 Vuex State Management Libraryを介してインポートします。

VueでWatchの使用方法 VueでWatchの使用方法 Apr 07, 2025 pm 11:36 PM

Vue.jsの監視オプションにより、開発者は特定のデータの変更をリッスンできます。データが変更されたら、Watchはコールバック関数をトリガーして更新ビューまたはその他のタスクを実行します。その構成オプションには、すぐにコールバックを実行するかどうかを指定する即時と、オブジェクトまたは配列の変更を再帰的に聴くかどうかを指定するDEEPが含まれます。

VueでBootstrapの使用方法 VueでBootstrapの使用方法 Apr 07, 2025 pm 11:33 PM

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

Vueはマーキー/テキストスクロール効果を実現します Vueはマーキー/テキストスクロール効果を実現します Apr 07, 2025 pm 10:51 PM

CSSアニメーションまたはサードパーティライブラリを使用して、VUEでマーキー/テキストスクロール効果を実装します。この記事では、CSSアニメーションの使用方法を紹介します。スクロールテキストを作成し、テキストを&lt; div&gt;をラップします。 CSSアニメーションを定義し、オーバーフローを設定します:非表示、幅、アニメーション。キーフレームを定義し、アニメーションの開始と終了時にtranslatex()を設定します。期間、スクロール速度、方向などのアニメーションプロパティを調整します。

怠zyなロードVUEとはどういう意味ですか? 怠zyなロードVUEとはどういう意味ですか? Apr 07, 2025 pm 11:54 PM

Vue.jsでは、Lazy Loadingを使用すると、コンポーネントまたはリソースを必要に応じて動的にロードすることができ、初期ページの読み込み時間を短縮し、パフォーマンスを改善できます。特定の実装方法には、&lt; Keep-Alive&gt;および&lt;コンポーネントは&gt;コンポーネント。怠zyなロードは、FOUC(スプラッシュ画面)の問題を引き起こす可能性があり、不必要なパフォーマンスのオーバーヘッドを避けるために怠zyなロードが必要なコンポーネントにのみ使用する必要があることに注意してください。

VUEのボタンに関数を追加する方法 VUEのボタンに関数を追加する方法 Apr 08, 2025 am 08:51 AM

HTMLテンプレートのボタンをメソッドにバインドすることにより、VUEボタンに関数を追加できます。 VUEインスタンスでメソッドを定義し、関数ロジックを書き込みます。

Vueのバージョンを照会する方法 Vueのバージョンを照会する方法 Apr 07, 2025 pm 11:24 PM

Vue Devtoolsを使用してブラウザのコンソールでVueタブを表示することにより、Vueバージョンを照会できます。 NPMを使用して、「NPM List -G Vue」コマンドを実行します。 package.jsonファイルの「依存関係」オブジェクトでVueアイテムを見つけます。 Vue CLIプロジェクトの場合、「Vue -Version」コマンドを実行します。 &lt; script&gt;でバージョン情報を確認してくださいVueファイルを参照するHTMLファイルにタグを付けます。

Vueによる前のページに戻る方法 Vueによる前のページに戻る方法 Apr 07, 2025 pm 11:30 PM

vue.jsには、前のページに戻る4つの方法があります。$ router.go(-1)$ router.back()outes&lt; router-link to =&quot;/&quot; Component Window.history.back()、およびメソッド選択はシーンに依存します。

See all articles