目次
ブラウザのサポート
デスクトップ
モバイル/タブレット
HTML構造
CSSスタイル
JavaScriptコード
ステップ1:イベントをクリックします
ステップ2:粒子の作成
ステップ3:粒子の幅、高さ、背景
ステップ4:各粒子をアニメーション化します
ステップ5:アニメーションが完了したら粒子を取り外します
最終効果
無制限の創造性
ホームページ ウェブフロントエンド CSSチュートリアル Web Animations APIを使用して粒子で再生します

Web Animations APIを使用して粒子で再生します

Apr 09, 2025 am 09:25 AM

Web Animations APIを使用して、クールな粒子効果を作成します。ボタンをクリックして花火を開花させます!

Web Animations APIを使用して粒子で再生します

アニメーションの魅力を粒子効果よりもよく示すことはできません!新しいテクノロジーを探索するたびに、できるだけ多くの粒子を使用してプレゼンテーションを行うことはできません。この記事では、Web Animations APIを使用して、ボタンをクリックしてより驚くべきパーティクルマジックを作成して花火エフェクトをトリガーします。

ブラウザのサポート

執筆時点で、SafariおよびInternet Explorerを除くすべての主要なブラウザは、少なくとも部分的にWebアニメーションAPIをサポートしています。 Safariサポートは、「Experience Feature」開発者メニューで有効にできます。

ブラウザは、Caniuseのデータをサポートしています。これには詳細が含まれています。番号は、ブラウザがこのバージョンからこの機能をサポートしていることを示しています。

デスクトップ

モバイル/タブレット

Twitter Love Animationを再現したい場合は、Ana Tudorのこの素晴らしい記事を参照することもできます。これは、ボタン爆発粒子の効果の素晴らしい例でもあります。

HTML構造

このデモは、HTMLコードをあまり必要としません。 1つを使用します<button></button>要素ですが、他のタイプのタグ要素にもなります。必要に応じて、ページ上のクリックイベントを聞いて、どこからでも粒子をポップアップできるようにすることもできます。

<button id="button">私をクリックしてください</button>
ログイン後にコピー

CSSスタイル

各粒子にはいくつかの一般的なCSSプロパティがあるため、ページのグローバルCSSにそれらを設定できます。 HTMLのようなカスタムタグ要素を作成できます。<particle></particle>セマンティックタグの使用を避けるためのタグ名。しかし、実際には、アニメーションができます<div>、<code><span></span>またはあなたが選んだラベル。

粒子 {
  ボーダーラジウス:50%;
  左:0;
  ポインターイベント:なし;
  位置:修正;
  上:0;
  不透明:0; /*初期の透明度は0です。アニメーションが始まる前に見える粒子を回避*/
}
ログイン後にコピー

注意すべきは、次のとおりです。

  • 粒子はページのレイアウトと相互作用してはならないため、 fixedtopleft positionを0pxに設定します。
  • また、 pointer-eventsを削除して、HTML粒子が画面に表示されたときにユーザーの相互作用を避けました。

ボタンとページのレイアウトのスタイルデザインはこの記事の焦点では​​ないため、このセクションをスキップします。

JavaScriptコード

JavaScriptで従う6つのステップを次に示します。

  1. ボタンのクリックイベントを聞いてください
  2. 30を作成します<particle></particle>要素をDOMに追加します
  3. 各粒子にランダム幅、高さ、背景色を設定します
  4. 各粒子をアニメーション化して、マウスの位置からランダムな位置に移動し、徐々にフェードアウトします
  5. アニメーションが完了したら、domから削除します<particle></particle>要素

ステップ1:イベントをクリックします

//まず、ブラウザがWebアニメーションAPIをサポートしているかどうかを確認します
if(document.body.anime){
  //サポートされている場合、クリックリスナーdocument.queryselector( '#button')を追加します。AddEventListener( 'Click'、pop);
}
ログイン後にコピー

ステップ2:粒子の作成

// pop()関数は関数pop(e)と呼ばれます{
  //(i = 0; i <h4 id="ステップ-粒子の幅-高さ-背景">ステップ3:粒子の幅、高さ、背景</h4><pre class="brush:php;toolbar:false">関数createparticle(x、y){
  // ...(前のコード)
  // 5pxから25px const size = math.floor(math.random() * 20 5)の間のランダムサイズを計算します。
  //各粒子にサイズを適用します。style.width= `$ {size} px`;
  partial.style.height = `$ {size} px`;
  //青/紫色のパレットPartial.style.background = `hsl($ {math.random() * 90 180}、70%、60%)`;
  // ...(次のステップ)
}
ログイン後にコピー

ステップ4:各粒子をアニメーション化します

関数createparticle(x、y){
  // ...(前のコード)
  //マウス位置75px const destinationx(math.random() -  0.5) * 2 * 75の範囲でランダムxおよびyターゲット位置を生成します。
  const destinationy = y(math.random() -  0.5) * 2 * 75;

  //アニメーションを変数に保存してから後で必要になるため、const animation = particle.anime([[
    {
      //粒子の初期位置を設定します//粒子のサイズの半分を使用して粒子をシフトしてマウスの中心にします: `翻訳($ {x  - (size/ 2)} px、$ {y  - (size/ 2)} px)`、
      不透明:1
    }、
    {
      //最終座標を2番目のキーフレーム変換として定義します: `translate($ {destinationx} px、$ {destionny} px)`、
      不透明:0
    }
  ]、{
    // 500msから1500msの間のランダムな期間を設定します:500 Math.random() * 1000、
    緩和: 'Cubic-Bezier(0、.9、.57、1)'、
    // 0msから200msの間のランダム値を使用して各粒子を遅らせる:math.random() * 200
  });
  // ...(次のステップ)
}
ログイン後にコピー

ステップ5:アニメーションが完了したら粒子を取り外します

関数createparticle(x、y){
  // ...(前のコード)
  //アニメーションが完了したら、dom =()=> {から要素アニメーションを削除します。
    particle.remove();
  };
}
ログイン後にコピー

最終効果

すべてのコードを一緒に統合することにより、必要な効果を得ることができます:カラフルな粒子爆発効果。

デモにアニメーションが表示されない場合は、ブラウザがWebアニメーションAPIをサポートしているかどうかを確認してください。詳細については、記事の冒頭のブラウザサポートフォームを参照してください。

無制限の創造性

これらすべてがCSSを使用しているため、粒子スタイルの変更は非常に簡単です。さまざまな形(文字!)を使用した例をいくつか紹介します。

または、この投稿でZach Saucierが行ったように、ボタン自体を爆発させることもできます。

(他の形状と文字の2番目の追加サンプルコード、およびZach Saucierの記事へのリンク)

以上がWeb Animations APIを使用して粒子で再生しますの詳細内容です。詳細については、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード 粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード Apr 03, 2025 am 10:30 AM

先日、Corey Ginnivanのウェブサイトから、この特に素敵なビットを見つけました。そこでは、スクロール中にカードのコレクションが互いに積み重ねられていました。

Googleフォント変数フォント Googleフォント変数フォント Apr 09, 2025 am 10:42 AM

Google Fontsが新しいデザイン(ツイート)を展開したようです。最後の大きな再設計と比較して、これははるかに反復的です。違いをほとんど伝えることができません

HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 Apr 11, 2025 am 11:29 AM

プロジェクトにカウントダウンタイマーが必要だったことはありますか?そのようなことのために、プラグインに手を伸ばすのは自然なことかもしれませんが、実際にはもっとたくさんあります

フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? Apr 05, 2025 pm 05:51 PM

フレックスレイアウトの紫色のスラッシュ領域に関する質問フレックスレイアウトを使用すると、開発者ツールなどの混乱する現象に遭遇する可能性があります(D ...

CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? Apr 05, 2025 pm 11:24 PM

要素の数が固定されていない場合、CSSを介して指定されたクラス名の最初の子要素を選択する方法。 HTML構造を処理するとき、あなたはしばしば異なる要素に遭遇します...

HTMLデータ属性ガイド HTMLデータ属性ガイド Apr 11, 2025 am 11:50 AM

HTML、CSS、およびJavaScriptのデータ属性について知りたいと思っていたことはすべて。

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

See all articles