AngularでTweenMaxアニメーションライブラリを使用する際の問題と解決策

AngularでTweenMaxアニメーションライブラリを使用する際の問題と解決策

最近何もすることがないのでCSSをいじっています

より良いアニメーションライブラリTweenMaxを見つけました

使い方が少し面倒ですが、本当に効果があります。

まず、AngularでTweenMaxを使用するには、まずnpm経由でインストールする必要があります。

1. npm install --save-dev gsap
2. npm install --save-dev @types/gsap

次に紹介する

"gsap" から {TweenMax} をインポートします。

ページ内で使用できます。

最初に遭遇した問題は、ボタンをトリガーしてアニメーションを連続的に再生したかったのですが、アニメーションが一度再生された後は、ボタンをクリックしてもトリガーされないということでした。

後で理由が分かりました。繰り返しトリガーする場合は、位置を変更する必要があります。たとえば、最初に X が 500 の場合、アニメーションが再生された後、X の位置は 500 になります。繰り返しトリガーすると、位置は 500 のままなので、機能しません。したがって、繰り返しトリガーする場合は、位置を変更する必要があります。

this.test = new TweenMax('.box',3,{
   x:this.direction?0:500,
   イーズ:バウンス.イーズアウト
  })

2 番目の問題は、ページ上で、アニメーション中およびアニメーション後に青いボタンの状態とテキストを変更したいのですが、ボタンにバインドされたプロパティを使用してこれを直接行うことができないことです。

<button [disabled]="isMoveing" style="margin-top: 10px;" nz-button nzType="primary" (click)="repeat()">
  {{記述可能}}
</ボタン>

this.test = new TweenMax('.box',3,{
   x:this.direction?0:500,
   イーズ:バウンス.イーズアウト、
   onStart:関数(){
    this.describle = '動いている'
    this.isMoveing = true です
   },
   onComplete:関数(){
    this.describle = '移動'
    this.isMoveing = false
   }
  })

しばらく悩んだ後、これが実際に問題であることがわかりました

上の図からわかるように、TweenMaxメソッドでは、これはTweenメソッド自体を指しており、変更する必要があるオブジェクトはコンポーネント内にあります(下の図を参照)。

問題が特定されれば、解決は比較的簡単です。関数スコープの外側に要素を定義して、正しい this を指すようにするだけです。

_this = this とします
this.test = new TweenMax('.box',3,{
   x:this.direction?0:500,
   イーズ:バウンス.イーズアウト、
   onStart:関数(){
    _this.describle = '動いている'
    _this.isMoveing = true
   },
   onComplete:関数(){
    _this.describle = '移動'
    _this.isMoveing = false
   }
  })

それは普通のことだ。

要約する

これで、Angular で TweenMax アニメーション ライブラリを使用する方法に関するこの記事は終了です。Angular で TweenMax を使用する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

<<:  MySQL 5.6.36 Windows x64 バージョンのインストールチュートリアルの詳細

>>:  Linux ディスクとディスク パーティションを理解するための記事

推薦する

忘れられたMySQLパスワードとログインエラーの問題について簡単に説明します

MySQL ログイン パスワードを忘れた場合、解決方法は実はとても簡単です。MySQL メイン構成フ...

コマンドラインを使用してUbuntuのバージョンを検出する方法

方法1: lsb_releaseユーティリティを使用するlsb_release ユーティリティは、L...

W3C組織はHTML4のスタイルに関する推奨事項を提供しています

これは、W3C 組織が HTML4 に対して提示したスタイル推奨事項です。残念ながら、ブラウザが独自...

React でのポータルとエラー境界処理の実装

目次ポータルエラー境界処理エラー境界を使用しない場合はどうなりますか?注記ポータルスロットとも言えま...

Webフロントエンド開発CSS関連チームコラボレーション

フロントエンド開発部門は成長し、スタッフも増加し、技術も向上しています。 CSSer はフロントエン...

ドロップダウンメニューとスライドメニューのデザイン例

ドロップダウン メニューやスライド メニューを使用している Web サイトをたくさん見つけたので、私...

Redis イメージの Docker インストールと設定手順

目次序文環境インストールMySQLコンテナを作成して起動する落とし穴を避けるための注意MySQLコン...

表には表示したい境界コードが表示されます

テーブルの共通プロパティ基本的な属性は、width (幅)、height (高さ)、border (...

HTML 選択オプションの基本的な理解と使用

JavaScript での HTML (選択オプション) の詳細な説明1. 基本的な理解:コードをコ...

Vue CLI のモードと環境変数の詳細な説明

序文実際のプロジェクトの開発では、通常、プロジェクト開発フェーズ、テストフェーズ、最終オンラインフェ...

nginxカスタム変数と組み込み定義済み変数の使用

概要Nginx では変数を使用して設定を簡素化し、設定の柔軟性を向上させることができます。すべての変...

JPG、GIF、PNGなどのさまざまな画像形式の詳細な説明

ウェブページ上の画像が一般的に jpg、gif、png 形式であることは誰もが知っています。それらの...

初心者向けのMySQLデータベースとテーブルDDLの作成と操作の学習

目次1. データベースを操作する1.1 データベースを作成する1.2 データベースをクエリする1.3...

Docker でローカルにイメージをインポート/保存/読み込み/削除する方法

1. Dockerはローカルイメージをインポートする場合によっては、イメージをローカルまたは別の友人...

MySQL のロックの仕組みと使用法の分析

この記事では、例を使用して MySQL のロック メカニズムと使用方法を説明します。ご参考までに、詳...