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 ディスクとディスク パーティションを理解するための記事

推薦する

シンプルな CSS テキストアニメーション効果

成果を達成する 実装コードhtml <div id=コンテナ> いらっしゃいませ <...

163 メールボックスログインボックスインタラクティブデザインの改善体験と共有

LOFTER のコンテストで、ログイン ボックスを再設計できると言及されているのを見ました。過去 2...

Windows 環境での MySQL の解凍、インストール、バックアップ、復元

システム環境はserver2012です1. MySQLの解凍バージョンをダウンロードし、インストール...

Linux で誤って削除したメッセージ ファイルを復元する方法

プロセスで使用されていて、誤って削除されたファイルがある場合、それらを回復することができます。プロセ...

Tomcatの再構成後に起動が遅くなる問題を迅速に解決

Jenkins+Tomcatサーバーの設定中に、Tomcat設定ファイルが変更され、サーバーのTom...

docker での psql データベースのバックアップとリカバリの詳細な説明

1. DockerでのPostgresデータベースのバックアップ注文: docker exec it...

MySQL で最大接続数を正しく変更する 3 つの方法

MySQL データベースをインストールすると、デフォルトの MySQL データベースの最大接続数が ...

チェックボックスの選択またはキャンセルを実装するJavaScript

この記事では、すべてのチェックボックスを選択または解除するためのJavaScriptの具体的なコード...

データベースのデフォルトパスを変更した後にmysqlが起動できない問題の解決策

序文mysql がデフォルトのデータベース パスを変更したため、サービスを開始できませんでした。ログ...

モバイルページで縦画面を強制する方法

最近、仕事でモバイルページを作成しました。もともと特別なことではありませんでしたが、非常に奇妙に感じ...

calc() で全画面背景の固定幅コンテンツを実現

ここ数年、Web デザインには「全幅背景と固定幅コンテンツ」というトレンドが生まれています。このデザ...

Nuxt.jsプロジェクトのDockerデプロイメントの実装

Docker 公式ドキュメント: https://docs.docker.com/ Docker は...

ブラインドの特殊効果を実現するネイティブJS

この記事では、ネイティブ JS で実装されたブラインドの特殊効果を紹介します。効果は次のとおりです。...

DockerはMariaDBのサブライブラリとサブテーブル、および読み書き分離機能を実装します

目次1. はじめに2. 環境整備1. 基本環境3.Mysqlマスタースレーブ構成をインストールする1...

Apache Bench ストレステストツールの実装原理と使用状況分析

1: スループット(1秒あたりのリクエスト数)サーバーの同時処理能力を定量的に表したもので、reqs...