検索

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 までご連絡ください。
CSSグリッドとは何ですか?CSSグリッドとは何ですか?Apr 30, 2025 pm 03:21 PM

CSSグリッドは、複雑で応答性の高いWebレイアウトを作成するための強力なツールです。設計を簡素化し、アクセシビリティを向上させ、古い方法よりも多くの制御を提供します。

CSS Flexboxとは何ですか?CSS Flexboxとは何ですか?Apr 30, 2025 pm 03:20 PM

記事では、レスポンシブデザインにおけるスペースの効率的なアラインメントと分布のためのレイアウト方法であるCSS FlexBoxについて説明します。 FlexBoxの使用量を説明し、CSSグリッドと比較し、ブラウザのサポートを詳細に説明します。

CSSを使用してWebサイトを応答するにはどうすればよいですか?CSSを使用してWebサイトを応答するにはどうすればよいですか?Apr 30, 2025 pm 03:19 PM

この記事では、ビューポートメタタグ、柔軟なグリッド、流体メディア、メディアクエリ、相対ユニットなど、CSSを使用してレスポンシブWebサイトを作成するための手法について説明します。また、CSSグリッドとフレックスボックスを使用してカバーし、CSSフレームワークを推奨しています

CSSボックスサイズのプロパティは何をしますか?CSSボックスサイズのプロパティは何をしますか?Apr 30, 2025 pm 03:18 PM

この記事では、要素の寸法の計算方法を制御するCSSボックスサイズのプロパティについて説明します。コンテンツボックス、ボーダーボックス、パディングボックスなどの値と、レイアウト設計とフォームアライメントへの影響について説明します。

CSSを使用してアニメーション化するにはどうすればよいですか?CSSを使用してアニメーション化するにはどうすればよいですか?Apr 30, 2025 pm 03:17 PM

記事では、CSS、キープロパティ、およびJavaScriptとの組み合わせを使用してアニメーションの作成について説明します。主な問題は、ブラウザの互換性です。

CSSを使用してプロジェクトに3D変換を追加できますか?CSSを使用してプロジェクトに3D変換を追加できますか?Apr 30, 2025 pm 03:16 PM

記事では、3D変換、主要なプロパティ、ブラウザの互換性、およびWebプロジェクトのパフォーマンスに関する考慮事項にCSSを使用して説明します。

CSSに勾配を追加するにはどうすればよいですか?CSSに勾配を追加するにはどうすればよいですか?Apr 30, 2025 pm 03:15 PM

この記事では、CSSグラデーション(線形、放射状、繰り返し)を使用して、ウェブサイトのビジュアルを強化し、深さ、フォーカス、および現代の美学を追加します。

CSSの擬似要素とは何ですか?CSSの擬似要素とは何ですか?Apr 30, 2025 pm 03:14 PM

記事では、CSSの擬似要素、HTMLスタイリングの強化における使用、および擬似クラスとの違いについて説明します。実用的な例を提供します。

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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン