目次
属性値を指定します
创建和操作时间线
播放选项
最终想法
ホームページ CMS チュートリアル &#&プレス Anime.js を使用した JavaScript ベースのアニメーション、パート 3: 値、タイムライン、および再生の探索

Anime.js を使用した JavaScript ベースのアニメーション、パート 3: 値、タイムライン、および再生の探索

Sep 03, 2023 am 09:01 AM

使用 Anime.js 基于 JavaScript 的动画,第 3 部分:探索值、时间轴和播放

Anime.js シリーズの前のチュートリアルでは、さまざまなターゲット要素のアニメーション方法を制御するさまざまな種類のパラメーターについて学びました。また、関数の引数を使用して要素の遅延や継続時間を徐々に変更する方法も学びました。

このチュートリアルでは、さらに一歩進んで、通常の数値、関数ベースの値、およびキーフレームを使用してプロパティ値自体を指定する方法を学習します。また、タイムラインを使用してアニメーションを順番に再生する方法も学習します。

属性値を指定します

Anime.js を使用すると、ターゲット要素のアニメーション化可能なプロパティの最終値を指定できます。アニメーションの初期値または開始値は、プロパティのデフォルト値です。 CSS で指定された任意の値を開始値として使用することもできます。最終値を指定するにはいくつかの方法があります。

単位のない数値にすることもできます。この場合、プロパティ値を計算する際には、プロパティの元の単位またはデフォルトの単位が使用されます。値を文字列として指定することもできますが、その文字列には少なくとも 1 つの数値が含まれている必要があります。文字列値の例は、10vh80%、および 9.125turn です。

絶対値を指定する代わりに、現在の値に対する相対的な属性値を指定することもできます。たとえば、値として =150px を使用して、最終的な translateY 値を現在の値 150px よりも大きくすることができます。相対値を指定する場合は、加算、乗算、および減算のみを使用できることに注意してください。

カラーをアニメーション化する場合、赤、黒、青などのカラー名を使用してアニメーションの最終的なカラー値を設定することはできません。この場合、カラー アニメーションはまったく発生せず、変更は瞬時に行われます。カラーをアニメーション化する唯一の方法は、値を 16 進数または RGB および HSL 値として指定することです。

ターゲット要素をアニメーション化するための初期値を指定していないことに気づいたかもしれません。 Anime.js は、CSS とこれらのプロパティのデフォルト値に基づいて初期値を自動的に決定します。ただし、配列を使用して、プロパティのデフォルト値以外の初期値を指定できます。配列の最初の項目は初期値を表し、2 番目の項目は最終値を表します。

すべてのターゲット要素に同じ最終値を使用する代わりに、関数を使用して異なるパラメーターに異なる値を設定できます。このプロセスは、関数ベースのプロパティ パラメーターを指定する場合と似ています。

リーリー

translateY 属性の場合、要素のインデックスを使用して翻訳値を設定します。 50 * (i 1) を使用すると、各要素の translateY 値が 50 ピクセルずつ増加します。

スケーリング アニメーションでは要素のインデックスも使用され、組み込みの Math.random() 関数は 1 未満の浮動小数点疑似乱数を返します。この方法では、要素はランダムにスケールされますが、属性の i/10 部分により、最終的に要素のサイズが大きくなる可能性がわずかに増加します。

回転アニメーションのコードでは、anime.random(a, b) ヘルパー関数を使用して、-180 ~ 180 の範囲のランダムな整数を取得します。この関数は、translateYrotate などのプロパティにランダムな値を割り当てるのに役立ちます。この関数を使用してランダムなスケール値を割り当てると、極端な結果が得られます。

さまざまな要素の境界半径の値は、el 関数パラメータを使用してターゲット要素の幅を計算することによって決定されます。最後に、コードの最後の部分でも、duration パラメーターと Delay パラメーターにランダムな値を割り当てます。

最後の部分で実装されたアニメーションは非常にランダムであることがわかります。要素のさまざまな属性値、またはその遅延値と期間値の間には関係はありません。現実では、アニメーションに方向感を追加する値を使用する方が賢明です。

キーフレームを使用して、ターゲット要素のさまざまなプロパティをアニメーション化することもできます。各キーフレームにはプロパティ オブジェクトの配列が含まれています。このオブジェクトを使用して、アニメーションのその部分のプロパティ値 durationdelay、および easing を指定できます。次のコードは、キーフレームベースの変換アニメーションを作成します。

リーリー

すべてのパラメータに異なる値または同じ値を指定することで、複数のプロパティを一度にアニメーション化することもできます。 2 番目のケースでは、グローバル delay パラメーターは、インデックスに基づいてすべての要素に初期遅延を適用します。この遅延は、キーフレーム内の各プロパティに適用される遅延とは無関係です。

创建和操作时间线

到目前为止,在本系列中,我们一直在使用 delay 参数以特定顺序播放不同的动画。要为此目的使用延迟,我们还需要知道前一个动画的持续时间。

随着动画序列的复杂性不断增加,维护正确的延迟值变得非常繁琐。其中一个动画的持续时间的任何变化都会迫使我们重新计算所有延迟值,以保持动画的原始序列。

解决这个问题的一个更好的方法是使用时间轴来控制动画序列。您必须使用 anime.timeline() 函数在 Anime.js 中创建时间线。您还可以将不同的参数作为对象传递给该函数。这些参数可以指定时间线播放的方向、循环次数以及 autoplay 参数来确定是否应自动播放动画。所有这些参数都已在本系列的参数教程中详细讨论。

您可以使用 add() 方法将不同的动画添加到时间轴。添加到时间线的所有动画将按照添加顺序播放。可以指定绝对或相对偏移值来控制动画的播放顺序。

当使用相对偏移值时,当前动画的开始时间是相对于前一个动画的时间确定的。相对偏移可以分为三种类型:

  • +=offset:在这种情况下,当前动画会在上一个动画结束后经过 offset 毫秒后开始播放。
  • -=offset:在这种情况下,当前动画在上一个动画结束前 offset 毫秒开始播放。
  • *=offset:在这种情况下,当前动画会在前一个动画的动画持续时间的 offset 倍后的毫秒数后开始播放。

以下代码展示了如何创建基本时间线和具有相对偏移值的时间线。

var basicTimeline = anime.timeline({
  direction: "alternate",
  loop: 2,
  autoplay: false
});

basicTimeline.add({
    targets: '.square',
    translateY: 200
 }).add({
    targets: '.red',
    translateY: 100
 }).add({
    targets: '.blue',
    translateY: 0
 });

var offsetTimeline = anime.timeline({
  direction: "alternate",
  loop: 2,
  autoplay: false
});

offsetTimeline.add({
    targets: '.square',
    translateY: 200
 }).add({
    targets: '.red',
    offset: '+=1000',
    translateY: 100
 }).add({
    targets: '.blue',
    offset: '*=2',
    translateY: 0
 });
ログイン後にコピー

尝试单击上述演示中的偏移时间线按钮。您将看到红色方块动画结束和蓝色方块动画开始之间有 2 秒的延迟。

我们没有为红方块动画指定 duration 。因此,使用默认值 1000ms 或 1s 作为持续时间。蓝色方形动画的乘数偏移量使该值加倍,这会导致动画延迟两秒。

当使用绝对偏移值时,时间线的起始时间用作参考点。通过对时间线开头发生的动画使用较大的偏移值,可以反转动画的播放顺序。

播放选项

Anime.js 有多种选项可以在任何给定点播放、暂停、重新启动或搜索动画或时间线。

play() 函数允许我们从当前进度开始播放动画。 pause() 函数将在调用该函数时冻结动画。 restart() 函数从头开始播放动画,无论其当前进度如何。 seek(value) 函数可用于将动画提前 value 毫秒数。

您应该记住,play() 函数仅从暂停时恢复动画。如果动画已经结束,则无法使用 play() 重播动画。要重播动画,您必须使用 restart() 函数。

var slowAnimation = anime({
  targets: '.square',
  translateY: 250,
  borderRadius: 50,
  duration: 4000,
  easing: 'linear',
  autoplay: false
});

document.querySelector('.play').onclick = slowAnimation.play;
document.querySelector('.pause').onclick = slowAnimation.pause;
document.querySelector('.restart').onclick = slowAnimation.restart;

var seekInput = document.querySelector('.seek');

seekInput.oninput = function() {
  slowAnimation.seek(slowAnimation.duration * (seekInput.value / 100));
};
ログイン後にコピー

请注意,我们没有使用 seekInput.value 来设置查找函数的值。这是因为范围输入的最大值已在标记中设置为 100。直接使用输入范围的值将允许我们最多查找 100 毫秒。将范围输入值乘以动画持续时间可确保我们可以在范围滑块上从头到尾查找动画。

最终想法

在本教程中,您学习了如何将不同的属性值设置为数字、函数或关键帧的动画。您还学习了如何在 Anime.js 中控制和操作时间线来控制动画序列的播放顺序。

如果您正在寻找其他资源来学习或在工作中使用,请查看我们在 Envato 市场中提供的资源。

如果您对本教程有任何疑问,请在评论中告诉我。

以上がAnime.js を使用した JavaScript ベースのアニメーション、パート 3: 値、タイムライン、および再生の探索の詳細内容です。詳細については、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)

WordPressは初心者にとって簡単ですか? WordPressは初心者にとって簡単ですか? Apr 03, 2025 am 12:02 AM

WordPressは、初心者が簡単に始めることができます。 1.バックグラウンドにログインした後、ユーザーインターフェイスは直感的であり、シンプルなダッシュボードは必要なすべての関数リンクを提供します。 2。基本操作には、コンテンツの作成と編集が含まれます。 WysiWygエディターは、コンテンツの作成を簡素化します。 3.初心者は、プラグインとテーマを介してウェブサイトの機能を拡張でき、学習曲線は存在しますが、練習を通じて習得できます。

WordPressを3日で学ぶことはできますか? WordPressを3日で学ぶことはできますか? Apr 09, 2025 am 12:16 AM

3日以内にWordPressを学ぶことができます。 1.テーマ、プラグインなどのマスター基本知識。2。インストールや作業原則などのコア関数を理解します。 3.例を使用して、基本的および高度な使用法を学びます。 4.デバッグテクニックとパフォーマンスの最適化の提案を理解します。

ワードプレスは何に適していますか? ワードプレスは何に適していますか? Apr 07, 2025 am 12:06 AM

wordpressisisgoodforvirtalayanywebprojectoitsversitilityasacms.itexcelsin:1)ユーザーフレンドリー、柔軟性と柔軟性と顧客化の維持、およびプルージンの数値化; 3)seooptimization;

WixまたはWordPressを使用する必要がありますか? WixまたはWordPressを使用する必要がありますか? Apr 06, 2025 am 12:11 AM

WIXは、プログラミングの経験がないユーザーに適しており、WordPressは、よりコントロールと拡張機能を必要とするユーザーに適しています。 1)WIXはドラッグアンドドロップエディターとリッチテンプレートを提供しているため、Webサイトをすばやく構築できます。 2)オープンソースのCMSとして、WordPressには巨大なコミュニティとプラグインエコシステムがあり、詳細なカスタマイズと拡張をサポートしています。

WordPressの費用はいくらですか? WordPressの費用はいくらですか? Apr 05, 2025 am 12:13 AM

WordPress自体は無料ですが、使用するには余分な費用がかかります。1。WordPress.comは、無料から支払いまでの範囲のパッケージを提供し、価格は月あたり数ドルから数十ドルまでの範囲です。 2。WordPress.orgでは、ドメイン名(年間10〜20米ドル)とホスティングサービス(月額5〜50米ドル)を購入する必要があります。 3.ほとんどのプラグインとテーマは無料で、有料価格は数十から数百ドルです。適切なホスティングサービスを選択し、プラグインとテーマを合理的に使用し、定期的に維持および最適化することにより、WordPressのコストを効果的に制御および最適化できます。

なぜWordPressを使用するのはなぜですか? なぜWordPressを使用するのはなぜですか? Apr 02, 2025 pm 02:57 PM

人々は、その力と柔軟性のためにWordPressを使用することを選択します。 1)WordPressは、さまざまなWebサイトのニーズに適した、使いやすさとスケーラビリティを備えたオープンソースのCMSです。 2)豊富なテーマとプラグイン、巨大なエコシステム、強力なコミュニティサポートがあります。 3)WordPressの作業原則は、テーマ、プラグイン、コア関数に基づいており、PHPとMySQLを使用してデータを処理し、パフォーマンスの最適化をサポートします。

WordPressはCMSですか? WordPressはCMSですか? Apr 08, 2025 am 12:02 AM

WordPressはコンテンツ管理システム(CMS)です。コンテンツ管理、ユーザー管理、テーマ、プラグイン機能を提供して、Webサイトコンテンツの作成と管理をサポートします。その実用的な原則には、ブログから企業Webサイトまで、さまざまなニーズに適したデータベース管理、テンプレートシステム、プラグインアーキテクチャが含まれます。

WordPressはまだ無料ですか? WordPressはまだ無料ですか? Apr 04, 2025 am 12:06 AM

WordPressのコアバージョンは無料ですが、使用中に他の料金が発生する場合があります。 1。ドメイン名とホスティングサービスには支払いが必要です。 2。高度なテーマとプラグインが充電される場合があります。 3.プロフェッショナルサービスと高度な機能が請求される場合があります。

See all articles