速報

imgproxyのICO処理にコード実行のおそれ|4.0.16だけでは残る問題を確認

CATEGORY

【anime.js】アニメーション開始時/終了時に関数を実行する【callback】

※本ページのリンクにはプロモーションが含まれています。

【anime.js】アニメーション開始時/終了時に関数を実行する【callback】

目次

本記事では、anime.jsでアニメーション開始時もしくは終了時に関数を実行する方法をご紹介しています。

anime.jsには豊富な機能が用意されていますが、今回はcallbackにフォーカスしたいと思います。

callbackはアニメーションが実行もしくは終了したタイミングで特定の処理を実行したいというときに有効な方法ですので、覚えておくと表現の幅が広がるのでおすすめです。

では、解説していきます。

スポンサーリンク

事前準備

まずは検証用にサンプルを作成します。

今回は四角形の要素が丸くなるアニメーションを使って、アニメーションの開始時・終了時にそれぞれアラートを出す形で確認できるようにしたいと思います。

anime.jsを読み込む

anime.jsはJavaScriptのライブラリです。なのででライブラリ本体を読み込みます。もしインターネットに接続できない場合は、予めこちらでローカルにライブラリファイルを落としておき、それを読み込みましょう。

<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/2.2.0/anime.min.js"></script>

HTMLで要素を作成する

続いてHTMLで要素を作成します。後ほどid属性が「circle」の要素にアニメーションを設定します。

<div id="app">
    <span id="circle"></span>
</div>

CSSでスタイルを定義する

最後スタイルを定義します。

#circle {
    width: 200px;
    height: 200px;
    background-image: linear-gradient( 109.6deg,  rgba(104,183,249,1) 31.3%, rgba(176,248,200,1) 100.2% );
}

以上で事前準備は完了です!

では本題に戻りまして、アニメーション開始時/終了時にために関数を実行する検証用のスクリプトを作成していきましょう。

begin:アニメーション開始時に関数を実行する

まずはアニメーション開始時に関数を実行する方法から。

アニメーション開始時に関数を実行する場合はanime.jsのcallbackに用意されているbeginを使用します。

anime({
    targets: '#circle',
    easing: 'easeInOutSine',
    duration: 3000,
    borderRadius: ['0%', '50%'],
    begin: ()=> {
        //ここに処理を記述
        window.alert('Begin!');
    }
});

上記の実行結果を確認してみましょう。アニメーション開始時にアラートが表示されます。

DEMO

See the Pen Callback Begin1 | anime.js by ryohei (@intotheprogram) on CodePen.

ちなみにbeginはdelayが指定されている場合、delayの後で実行されます。試しにdelayを「3秒」を設定して実行してみましょう。

anime({
    targets: '#circle',
    easing: 'easeInOutSine',
    delay: 3000,
    duration: 3000,
    borderRadius: ['0%', '50%'],
    begin: ()=> {
        //ここに処理を記述
        window.alert('Begin!');
    }
});

下記がdelayを設定した際のデモです。delayの後に関数が実行されていることがご確認いただけるかと思います。

DEMO

See the Pen Callback Begin2 | anime.js by ryohei (@intotheprogram) on CodePen.

続いてアニメーション終了時に関数を実行する方法を見ていきましょう。

スポンサーリンク

complete:アニメーション終了時に関数を実行する

アニメーション終了時に関数を実行する場合はanime.jsのcallbackに用意されているcompleteを使用します。

anime({
    targets: '#circle',
    easing: 'easeInOutSine',
    duration: 3000,
    borderRadius: ['0%', '50%'],
    complete: ()=> {
        //ここに処理を記述
        window.alert('Complete!');
    }
});

下記はcompleteを使用したデモになります。アニメーションが終了した後に関数が実行されていることがご確認いただけます。

DEMO

See the Pen Callback Complete | anime.js by ryohei (@intotheprogram) on CodePen.

最後に

anime.jsは今回ご紹介したcallbackの他に多くの機能が提供されています。今後使用する中でおすすめの機能があればこういった形でご紹介していければと思います!

以上、anime.jsでアニメーション開始時・終了時にスクリプトを実行する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク

CDN

世界各地のサーバーにWebサイトのファイルを複製して置き、利用者に近いサーバーから配信する仕組み。表示の高速化や負荷の分散に使う。

詳しく見る