検索

Particles.js: Motion and Interaction

このチュートリアルでは、Particles.jsに飛び込み、粒子の動き、相互作用パターン、およびイベントを制御する方法を学びます。前のチュートリアルでは、さまざまな形状とサイズの粒子を作成する方法を学びました。しかし、粒子間に相互作用が不足しており、他の粒子がないかのように、それらは互いに通過します。このチュートリアルでは、この欠点を補います。

粒子の動きを制御

粒子システム内のすべての粒子がランダムな方向に移動するわけではありません。ランダムな動きでさえ、他の力があります。たとえば、粒子が互いに近づくと加速したり、衝突後にリバウンドする場合があります。これらのすべてのオプションは、

属性の下のさまざまなパラメーターによって制御できます。 move

粒子を動かしたくない場合は、に設定できます。粒子の速度は、enableパラメーターを使用して指定できます。各粒子をランダムな速度で動かすには、falsespeedに設定します。一方、それらをランダムな方向に動かすために、randomtrueを指​​定します。 direction none粒子は最終的にシステム境界に移動します。 パラメーターは、粒子が別の方向からリバウンドするか、表示されるかを決定します。

に設定すると、粒子はキャンバスから出ると、境界を押した後、粒子がリバウンドします。 out_mode out粒子が互いに通過し、速度が変化しないままになっているのは不自然に思えます。各衝突で粒子速度を変更するには、bounce

に設定します。興味深いことに、この設定は、

またはbounceプロパティが有効になっている場合にのみ有効です。粒子が衝突するたびに、正面衝突ではない場合でも、方向は逆転します。 true line_linked最後に、魅力を議論しましょう。魅力が有効になると、他の粒子がその近くに存在すると、粒子はその速度を変化させます。他のパラメーターの値に応じて、変更は正または負になる場合があります。各方向の魅力は、それぞれのパラメーターattractionおよび

の値に反比例します。デフォルト値が高いため、明らかなアトラクションが観察されます。一方、これらの値が低すぎると、粒子は一定期間後に非常に高い速度を得ます。

rotateX rotateY

および
"move": {
  "enable": true,
  "speed": 20,
  "random": true,
  "direction": "none",
  "bounce": true,
  "out_mode": "bounce",
  "attract": {
    "enable": true,
    "rotateX": 10,
    "rotateY": 10
  }
}
に設定されている場合、同時に粒子が動かないことを覚えておいてください。

straighttrueインタラクティブなイベントとパターンdirectionnone

ユーザーは粒子と対話できますか?答えはイエスです。 particles.jsは、hoverclickresizeの3つのイベントに応答できます。パラメーターの値を設定することにより、キャンバスまたはウィンドウ自体のイベントを検出できます。これらのすべてのイベントは、キャンバス/ウィンドウをホバリング、クリック、またはサイズ変更するときにトリガーされます。 detect_on

resizeに設定されている場合、粒子は変形せずに残りの空間で自分自身を調整します。 trueresizeに設定されると、粒子はキャンバスのサイズの変化に合わせて形状を変えます。 false

"move": {
  "enable": true,
  "speed": 20,
  "random": true,
  "direction": "none",
  "bounce": true,
  "out_mode": "bounce",
  "attract": {
    "enable": true,
    "rotateX": 10,
    "rotateY": 10
  }
}

パラメーターは、ユーザーが粒子との相互作用方法を定義します。ライブラリは、5つの相互作用モードの定義modegrabbubblerepulsepush、およびremove

grabモードは、特定の距離内でホバーまたはクリックしているポイントと近くの粒子の間に接続ラインを作成します。このモードは、ホバーイベントにのみ適用できます。以下のJSONコードは、1の不透明度の線を描画し、800ピクセル以内のすべての粒子を接続します。

"detect_on": "canvas",
"events": {
  "onhover": {
    "enable": true,
    "mode": "repulse"
  },
  "onclick": {
    "enable": true,
    "mode": "push"
  },
  "resize": true
}

bubbleモードは、特定の距離内のすべての粒子のサイズと不透明度を変更し、期間はあなた次第です。 repulseモードは、粒子をクリック位置から遠ざけます。どちらのモードもhoverまたはclickに追加できます。持続時間は、どちらの場合もイベントをクリックすることにのみ適用されます。

"grab": {
  "distance": 800,
  "line_linked": {
    "opacity": 1
  }
}

さまざまなパラメーターを変更して、デモの動作を改善することができます。

pushモードマウスがクリックするたびに一定数の粒子を追加します。粒子はクリックされた位置に追加されます。同様に、removeモードはキャンバスから粒子を除去します。除去する粒子はランダムに選択されます。

"bubble": {
  "distance": 600,
  "size": 60,
  "duration": 0.1,
  "opacity": 1
},
"repulse": {
  "distance": 500,
  "duration": 0.5
}

概要

この一連のチュートリアルは、particles.jsのすべての機能をカバーしています。粒子などの問題を随時回復しないようにするために、時々いくつかの予防策に言及しました。

説明したすべてのパラメーターに関する詳細情報が必要な場合は、このライブラリのドキュメントを参照してください。さらに、ライブラリの使用に問題がある場合、または一部の機能が異常に動作する場合は、ソースコードを読んで内部でどのように機能するかを理解することをお勧めします。

この記事は更新されており、キングスレーウバの貢献が含まれています。キングスレーは、読者を教育し、刺激するコンテンツを作成することに情熱を傾けています。彼の趣味には、読書、サッカー、サイクリングが含まれます。

以上がparticles.js:動きと相互作用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
スクリーンリーダーの分解:アクセス可能なフォームとベストプラクティススクリーンリーダーの分解:アクセス可能なフォームとベストプラクティスMar 08, 2025 am 09:45 AM

これは、フォームアクセシビリティについて行った小さなシリーズの3番目の投稿です。 2番目の投稿を逃した場合は、「ユーザーフォーカスの管理:Focus-Visible」をご覧ください。で

WordPressブロックと要素にボックスシャドウを追加しますWordPressブロックと要素にボックスシャドウを追加しますMar 09, 2025 pm 12:53 PM

CSS Box-Shadowおよびアウトラインプロパティは、WordPress 6.1でTheme.jsonサポートを獲得しました。実際のテーマでどのように機能するか、そしてこれらのスタイルをWordPressブロックと要素に適用するために必要なオプションのいくつかの例を見てみましょう。

最初のカスタムSvelteトランジションを作成します最初のカスタムSvelteトランジションを作成しますMar 15, 2025 am 11:08 AM

Svelte Transition APIは、コンポーネントがカスタムSVELTE遷移を含むドキュメントを入力または離れるときにアニメーション化する方法を提供します。

GraphQLキャッシングの使用GraphQLキャッシングの使用Mar 19, 2025 am 09:36 AM

最近GraphQLの作業を開始した場合、またはその長所と短所をレビューした場合、「GraphQLがキャッシュをサポートしていない」または

上品でクールなカスタムCSSスクロールバー:ショーケース上品でクールなカスタムCSSスクロールバー:ショーケースMar 10, 2025 am 11:37 AM

この記事では、Scrollbarsの世界に飛び込みます。私は知っています、それはあまりにも魅力的ではありませんが、私を信じてください、よく設計されたページは手をつないで行きます

ショー、Don' t Tellショー、Don' t TellMar 16, 2025 am 11:49 AM

あなたのウェブサイトのコンテンツプレゼンテーションの設計にどれくらいの時間に費やしますか?新しいブログ投稿を書いたり、新しいページを作成したりするとき、あなたは考えていますか

Redwood.jsと動物相を使用してイーサリアムアプリを構築しますRedwood.jsと動物相を使用してイーサリアムアプリを構築しますMar 28, 2025 am 09:18 AM

最近のビットコインの価格が20k $ $ USDを超えており、最近30Kを破ったので、イーサリアムを作成するために深く掘り下げる価値があると思いました

NPMコマンドは何ですか?NPMコマンドは何ですか?Mar 15, 2025 am 11:36 AM

NPMコマンドは、サーバーの開始やコンパイルコードなどの1回限りのプロセスまたは継続的に実行されるプロセスとして、さまざまなタスクを実行します。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

メモ帳++7.3.1

メモ帳++7.3.1

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

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。