Vue3のアニメーション機能を詳しく解説:かっこいいアニメーション効果を実現するアプリ
インターネット テクノロジーの継続的な発展に伴い、ユーザー エクスペリエンスを向上させるためにクールなアニメーション効果を表示する必要がある Web サイトやアプリケーションがますます増えています。最新の JavaScript フレームワークとして、Vue3 はアニメーション機能を含む多くの優れたツールキットを開発者に提供します。この記事では、Vue3のアニメーション機能の応用と実装方法、かっこいいアニメーション効果を実現する方法を詳しく紹介します。
- はじめに
Vue3 は、Composition API を通じて次のような強力なアニメーション関数ライブラリを提供します。
-
useTransition
:遷移関数 -
useAnimation
: アニメーション関数 -
useTween
: イージング関数 -
useSpring
: Spring 関数
これらの関数を使用すると、状態が変化したときのグラデーション、スライド、回転、その他の効果など、さまざまな複雑なアニメーション効果を Web ページに簡単に実装できます。
-
useTransition
遷移関数
useTransition
は Vue3 の遷移関数で、2 つの状態間で使用されます。次のような遷移を行います。表示から非表示へ、上から下へスライドインなど。その基本的な使用法は次のとおりです。
import { useTransition } from 'vue' const transitions = useTransition(show, { // 定义三个阶段的动画 enter: '', leave: '', appear: '' })
ここで、show
は、現在の状態を表示するかどうかを示すブール値です。 3 つのパラメータ enter
、leave
、Appearl
は、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 ライブラリを使用してアニメーション効果を実現します。
useAnimation
アニメーション関数
アニメーション関数はトランジション関数とは異なり、回転や拡大縮小などのさまざまな半径をカスタマイズできます。さまざまなアニメーション効果は、useAnimation
を使用して定義できます。これは、次のパラメータを含む関数をパラメータとして受け取ります:
initial
: アニメーションの開始時- #from
- to
- の初期状態: アニメーション期間
- : アニメーション遅延時間
- : イージング関数
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 状態を小さな青い四角形から大きな黒い四角形に遷移させながら、そのプロパティの変更をアニメーション化するアニメーション関数を定義します。 アニメーションは
で設定されているため、テンプレートを通じてその値を直接取得できないことに注意してください。テンプレートに設定する特定の値を手動で導入する必要があります。アニメーションは次のように使用する必要があります: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'><template>
<div :style="animations"></div>
</template>
<script>
import { useAnimation } from 'vue';
export default {
setup() {
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'
})
return {
animations
}
}
}
</script></pre><div class="contentsignin">ログイン後にコピー</div></div>
テンプレート内でアニメーションを必要とするプロパティ値を
に渡して最終ターゲットを設定できます。
- 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: () => {
console.log('Completed')
}
})</pre><div class="contentsignin">ログイン後にコピー</div></div>
この例では、
イージング関数を使用して、指定された時間内に値を 0 から 100 に変換します。 これは
を示す簡単な例です: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'><template>
<div>
<div :style="{ transform: 'translateX(' + xValue + 'px)' }">{{ xValue }}</div>
<button @click="move">Move</button>
</div>
</template>
<script>
import { ref, useTween } from 'vue';
export default {
setup() {
const xValue = ref(0)
const move = () => {
useTween(0, 300, {
duration: 1000,
ease: 'easeOutElastic',
onUpdate: (value) => {
xValue.value = value
}
})
}
return {
xValue,
move
}
}
}
</script></pre><div class="contentsignin">ログイン後にコピー</div></div>
この例では、
を xValue## に使用します # から移動します0 ~ 300。
easeOutElastic イージング関数を使用してスプリング効果を作成します。
onUpdate コールバック関数は、
value (スプリング アニメーションの最終値) を
xValue に割り当て、それをテンプレート内の div にバインドします。
- Spring 関数
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 に適用して、ページ全体でスプリングをアニメーション化する方法を示します。
概要
- Vue3 は、開発者が複雑なアニメーション効果を迅速かつ簡単に理解できるようにする一連の優れたアニメーション関数を提供します。これらの機能を使用すると、さまざまなクールなアニメーション効果を実装して、Web アプリケーションのユーザー エクスペリエンスをさらに向上させることができます。これらの関数を使用するには、 setup
以上がVue3のアニメーション機能を詳しく解説:かっこいいアニメーション効果を実現するアプリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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