Advertisement
  1. Code
  2. JavaScript

Particles.js: Bewegung und Interaktion

Scroll to top
Read Time: 5 min
This post is part of a series called An Introduction to Particles.js.
Particles.js: Control Particle Count and Shape

German (Deutsch) translation by Ines Willenbrock (you can also view the original English article)

Im letzten Particles.js Tutorial haben Sie gelernt, wie Sie Partikel mit gewünschten Formen und Größen erstellen. Während es sich gut anfühlte, zu sehen, wie sich alle Teilchen bewegten, gibt es noch Raum für Verbesserungen. Derzeit gibt es keinerlei Wechselwirkungen zwischen verschiedenen Teilchen. Sie gehen einfach aneinander vorbei, als ob die anderen Teilchen nicht existieren würden.

In diesem Tutorial erfahren Sie, wie Sie Partikel so bewegen können, wie Sie möchten, indem Sie ihre Richtung, Geschwindigkeit und vieles mehr steuern. Außerdem erfahren Sie mehr über verschiedene Interaktionsmodi und Events.

Steuerung der Partikelbewegung

Nicht alle Teilchen in jedem Partikelsystem bewegen sich in zufälligen Richtungen. Selbst wenn sie es tun, sind einige andere Kräfte im Einsatz. Zum Beispiel können sie sich beschleunigen, wenn sie sich einander nähern oder nach Kollisionen zurückprallen. Alle diese Optionen können durch verschiedene Eigenschaften gesteuert werden, die unter move verfügbar sind.

Wenn Sie nicht möchten, dass sich die Partikel überhaupt bewegen, können Sie dies tun, indem Sie enable auf false setzen. Sie können die Geschwindigkeit von Partikeln mithilfe des Parameters speed angeben. Um jedes Partikel mit einer zufälligen Geschwindigkeit zu bewegen, setzen Sie random auf true. Um sie hingegen in zufällige Richtungen zu verschieben, setzen Sie den Wert direction auf none.

Früher oder später wird sich mindestens eines der Teilchen an die Grenze unseres Systems bewegen. Ob dieses Partikel zurückprallt oder aus einer anderen Richtung kommt, entscheidet der Wert des out_mode Parameters. Wenn der Wert auf out gesetzt ist, bewegen sich die Partikel aus der Leinwand heraus. Wenn er auf bounce eingestellt ist, prallen die Partikel zurück, nachdem sie die Grenze erreicht haben.

Es scheint ein wenig unnatürlich, wenn Teilchen einander ohne Änderung der Geschwindigkeit passieren. Um die Partikelgeschwindigkeit bei jeder Kollision zu ändern, können Sie bounce auf true setzen. Interessanterweise funktioniert dies nur, wenn entweder die line_linked oder die attraction-Eigenschaft aktiviert ist. Partikel kehren ihre Richtung jedes Mal um, wenn sie kollidieren, auch wenn die Kollision nicht frontal erfolgt.

Abschließend möchte ich auf die Anziehungskraft eingehen. Sobald Sie die attraction-Eigenschaft aktivieren, ändern die Teilchen ihre Geschwindigkeit, wenn sie sich in der Nähe anderer Teilchen befinden. Die Änderung kann je nach Wert anderer Parameter positiv oder negativ sein. Die Anziehungskraft in jede Richtung ist umgekehrt proportional zum Wert der jeweiligen Parameter, rotateX und rotateY. Die Standardwerte sind sehr hoch, um eine spürbare Anziehungskraft zu beobachten. Wenn Sie andererseits ihre Werte zu niedrig einstellen, werden die Partikel nach einiger Zeit sehr hohe Geschwindigkeiten erhalten.

Die JSON, die für die Bewegung der oben genannten Teilchen verantwortlich ist, ist:

1
"move": {
2
  "enable": true,
3
  "speed": 20,
4
  "random": true,
5
  "direction": "none",
6
  "bounce": true,
7
  "out_mode": "bounce",
8
  "attract": {
9
    "enable": true,
10
    "rotateX": 10,
11
    "rotateY": 10
12
  }
13
}

Sie sollten bedenken, dass sich die Partikel überhaupt nicht bewegen, wenn Sie gleichzeitig straight auf true und direction auf none setzen.

Interaktionsevents und -modi

So weit so gut, aber Sie könnten sich fragen, ob die Teilchen auch mit dem Benutzer interagieren können, und wenn sie können, wie sie interagieren würden.

Um Ihre erste Frage zu beantworten, können die Partikel mit dem Benutzer interagieren. Partikel.js können auf drei Ereignisse reagieren: hover, click und resize. Zunächst sollten Sie jedoch wissen, dass die Ereignisse auf dem Canvas oder im Fenster selbst erkannt werden können, indem Sie den Wert des detect_on Parameters festlegen. Jetzt werden alle diese Ereignisse ausgelöst, wenn Sie den Canvas/das Fenster bewegen, klicken oder die Größe ändern.

Wenn Sie die resize auf true setzen, passen sich die Partikel im verbleibenden Raum ohne Verzerrung an. Wenn die resize auf false gesetzt ist, ändern die Partikel ihre Form, um Änderungen in der Leinwandgröße zu berücksichtigen.

1
"detect_on": "canvas",
2
"events": {
3
  "onhover": {
4
    "enable": true,
5
    "mode": "repulse"
6
  },
7
  "onclick": {
8
    "enable": true,
9
    "mode": "push"
10
  },
11
    "resize": true
12
}

Sie fragen sich wahrscheinlich, was der mode-Parameter im Codeausschnitt oben macht. Dieser Parameter definiert, wie die Partikel mit dem Benutzer interagieren würden. Die Bibliothek hat fünf Interaktionsmodi definiert. Sie sind grab, bubble, repulse, push und remove.

Der grab-Modus erstellt Verbindungslinien zwischen Ihrem Mauszeiger oder Klickpunkt und Partikeln in der Nähe innerhalb einer bestimmten Entfernung, die Sie selbst festlegen. Dieser Modus funktioniert nur mit dem Hover-Event. Der JSON unten zeichnet eine Linie mit Deckkraft 1, um alle Partikel innerhalb von 800 px zu verbinden.

1
"grab": {
2
  "distance": 800,
3
  "line_linked": {
4
    "opacity": 1
5
  }
6
}

Der bubble-Modus ändert die Größe und Deckkraft aller Partikel, die sich für eine von Ihnen bestimmte Dauer innerhalb einer bestimmten Entfernung befinden. Der repulse-Modus lässt das Partikel von der Position des Klicks weggehen. Beide Modi können entweder dem hover-Event oder click-Event hinzugefügt werden. Die Dauer ist in beiden Fällen nur für Klick-Events anwendbar.

1
"bubble": {
2
  "distance": 600,
3
  "size": 60,
4
  "duration": 0.1,
5
  "opacity": 1
6
},
7
"repulse": {
8
  "distance": 500,
9
  "duration": 0.5
10
}

Sie sollten versuchen, verschiedene Parameter zu ändern, um die Demo noch besser zu machen.

Der push-Modus fügt bei jedem Mausklick eine bestimmte Anzahl von Partikeln hinzu. Die Partikel werden an der Stelle des Klicks hinzugefügt. In ähnlicher Weise entfernt der remove-Modus Partikel von der Leinwand. Die zu entfernenden Partikel werden nach dem Zufallsprinzip bestimmt.

1
"push": {
2
  "particles_nb": 3
3
},
4
"remove": {
5
  "particles_nb": 1
6
}

Letzte Gedanken

Die drei Tutorials in dieser Serie behandelten alles, was Particles.js zu bieten hat. Ich habe auch hin und wieder ein paar Dinge erwähnt, damit man sich später nicht über Probleme wie Teilchen, die nicht abprallen bzw. abprallen den Kopf zerbrechen muss.

Wenn Sie mehr über alle von uns besprochenen Parameter erfahren möchten, lesen Sie bitte die Dokumentation dieser Bibliothek. Wenn Sie darüber hinaus irgendwann stecken bleiben, während sie die Bibliothek benutzen oder etwas sich nicht so verhält, wie es sollte, möchte ich vorschlagen, dass Sie den Quellcode lesen, um zu sehen, was unter der Haube vor sich geht.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.