js, um einen coolen Feuerwerkseffekt zu erzielen

js, um einen coolen Feuerwerkseffekt zu erzielen

In diesem Artikel finden Sie den spezifischen Code für die Verwendung von js zum Erzielen cooler Feuerwerkseffekte als Referenz. Der spezifische Inhalt ist wie folgt

Wir müssen die Grundidee des gesamten Prozesses klären.

Erstellen Sie zunächst eine Leinwand, um die Wirkung des Feuerwerks darzustellen, und denken Sie dann über den Ablauf des Feuerwerks nach. Wir alle wissen, dass Feuerwerke normalerweise zuerst in den Himmel fliegen und sich dann in viele kleine Feuerwerke auflösen, und jedes kleine Feuerwerk hat einen anderen Stil und eine andere Bewegung.

Die Grundidee besteht darin, zunächst ein Div als unser großes Feuerwerk zu erstellen. Wenn sich das große Feuerwerk an die Stelle bewegt, an der wir mit der Maus geklickt haben, verschwindet das große Feuerwerk und dann werden weitere kleine Feuerwerke erzeugt. Die Bewegungsbahnen dieser kleinen Feuerwerke sind unterschiedlich.

1. Erstellen Sie eine Leinwand (div), um den Effekt des Feuerwerks anzuzeigen

/*Legen Sie den CSS-Stil für die Leinwand fest*/
#Behälter {
        Breite: 80%;
        Höhe: 600px;
        Rand: 1px rot durchgezogen;
        Position: relativ;
        Rand: 20px automatisch;
        Cursor: Zeiger;
        Hintergrund: schwarz;
    }
<!-- Ein Div einrichten -->
<div id="Container"></div>

2. Holen Sie sich den Knoten

 //Knoten abrufen var app = document.getElementById('container');
        //Legen Sie ein Bindungsereignis für die App fest app.onclick = function(event) {
                var e = Ereignis || Fenster.Ereignis
               //Holen Sie sich die Koordinaten der Mausklickposition var pos = {
                    cy: e.offsetY,
                    cx: e.offsetX
                }
                neues Feuer (App, Pos)
            }

Der Prozess der Realisierung eines Feuerwerks: Realisieren Sie zuerst ein großes Div, das sich an die Position bewegt, an der mit der Maus geklickt wird, und verteilen Sie es dann auf viele Divs

3. Implementieren Sie zuerst das große Feuerwerk (Sie müssen die Zufallszahlenmethode, die Zufallsfarbmethode und die Bewegungsfunktion aufrufen).

// Konstruktorfunktion Fire(app, pos) {
            //Setze die Eigenschaft auf die Variable this.app = app;
            dies.pos = pos;
            // Erstelle ein großes div
            dies.bf = Dokument.createElement('div');
            //Einen Klassennamen festlegen this.bf.className = 'fire';
            //Stil festlegen this.bf.style.left = this.pos.cx + 'px';
            dies.bf.style.background = dies.getColor();
            diese.app.appendChild(diese.bf);
            //Rufen Sie die Bewegungsfunktion this.move(this.bf, {
                oben: this.pos.cy
            }, () => {
                dies.bf.entfernen();
                dies.smallFire();
            })
        }

3.1 Stellen Sie zuerst den Stil des Feuers ein

Dies ist die ursprüngliche Art des Feuers

 .Feuer {
        Hintergrund: rot;
        Position: absolut;
        /* Beim Festlegen von „unten“ ergibt sich „oben“ als Maximalwert abzüglich der Mausklickposition*/
        unten: 0px;
        Breite: 6px;
        Höhe: 6px;
    }

3.2 Methode zum Einstellen einer Zufallszahl und einer Zufallsfarbe (Prototypobjekt)

//Eine Zufallszahl abrufen Methode Fire.prototype.rand = function(min, max) {
            gibt Math.round(Math.random() * (max - min) + min) zurück;
        }
 
 
//Methode um eine zufällige Farbe zu erhalten Fire.prototype.getColor = function() {
         sei Summe = '#';
         für (sei i = 0; i < 6; i++) {
               Summe += this.rand(0, 15).toString(16)
           }
             Rücklaufsumme;
           }

3.3 Kapselung einer Bewegungsfunktion (Prototypobjekt)

Fire.prototype.move = Funktion(Element, Ziel, cb) {
                // Intervall löschen(Zeiten);
                let times = setIntervall(Funktion() {
                    // konsole.log(dies);
                    var einAus = true;
                    // Durchlaufe die Richtung und das Ziel der Bewegung for (let attr in target) {
                        // attr stellt das Attribut der Bewegung dar // console.log(attr);
                        // Den Echtzeitwert des Elementattributs abrufen let tmpVal = parseInt(this.getPos(ele, attr))
                            // Geschwindigkeit berechnen
                            // konsole.log(tmpVal, attr);
                        lass Geschwindigkeit = (Ziel[attr] – tmpVal) / 10;
                        // Rundengeschwindigkeit = Geschwindigkeit > 0 ? Math.ceil(Geschwindigkeit) : Math.floor(Geschwindigkeit);
                        // Stoppen Sie den Timer, wenn sich ein Attribut an die Position bewegt, und setzen Sie den Schalterzustand, wenn (tmpVal == target[attr]) onOff = true;
                        // Das Element bewegen ele.style[attr] = tmpVal + speed + 'px';
                    }
 
                    // Bestimmen Sie den Schalterstatus und löschen Sie den Timer für (var moveAttr in target) {
                        // Wenn sie nicht gleich sind, bedeutet das, dass einige Attribute nicht an die Position bewegt wurden und der Timer nicht gestoppt werden kann, if (target[moveAttr] !== parseInt(this.getPos(ele, moveAttr))) {
                            einAus = falsch;
                            brechen;
                        }
                    }
                    wenn (einAus) {
                        clearInterval(Zeiten);
                        cb und cb();
                    }
                    // konsole.log(1111);
                }.binden(dies), 30)
            }
            // Funktion zum Abrufen der Echtzeitposition eines Elements Fire.prototype.getPos = function(obj, attr) {
            if (obj.currentStyle) { // CSS-Stil abrufen return obj.currentStyle[attr];
            } anders {
                gibt getComputedStyle(Objekt)[Attr] zurück
            }
        }

Durch die obigen Schritte können wir die Bewegungsbahn des großen Feuerwerks ermitteln. Nachdem sich das große Feuerwerk an die angegebene Position bewegt hat, verschwindet es und an der Stelle, an der es verschwindet, werden viele kleine Feuerwerke erzeugt. Aus der vorherigen Analyse können wir erkennen, dass die Bewegungsbahnen und -stile von kleinen Feuerwerken unterschiedlich sind. Der nächste Schritt besteht darin, kleine Feuerwerke zu realisieren.

4. Durchführung von Kleinfeuerwerk

4.1 Festlegen des Stils von samll-fire

Dies ist die ursprüngliche Eigenschaft von samll-fire

.kleines Feuer {
        Breite: 10px;
        Höhe: 10px;
        Position: absolut;
        Randradius: 50 %;
    }

4.2 Eigenschaften des kleinen Feuerwerks festlegen

//Kleines Feuerwerk Fire.prototype.smallFire = function() {
            //Zuerst legen wir die Anzahl der kleinen Feuerwerke fest let num = this.rand(50, 60)
            //Durchlaufe und lege für jedes kleine Feuerwerk einen anderen Stil fest for (let i = 0; i < num; i++) {
                Lassen Sie sf = document.createElement('div');
                sf.className = "kleines Feuer";
                sf.style.left = diese.pos.cx + 'px';
                sf.style.top = diese.pos.cy + 'px';
                sf.style.background = this.getColor();
                //Konsole.log(sf);
                //An die Seite anhängen this.app.appendChild(sf);
                //Die Flugbahn des kleinen Feuerwerks in eine Kreisbewegung umwandeln//var top = parseInt(Math.sin(Math.PI / 180 * 360 / num * i) * r) + this.pos.cy;
                //var links = parseInt(Math.cos(Math.PI / 180 * 360 / num * i) * r) + this.pos.cx;
                 //Geben Sie dem kleinen Feuerwerk eine zufällige Position, die jede beliebige Position auf der Leinwand sein kann. let top = this.rand(0, this.app.offsetHeight - sf.offsetHeight);
                 let left = this.rand(0, this.app.offsetWidth - sf.offsetWidth);
                //Rufen Sie die Bewegungsfunktion this.move(sf, {
                    oben: oben,
                    links: links
                }, Funktion() {
                    sf.entfernen();
                })
            }
}

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • js-Simulation zum Erzielen von Feuerwerkseffekten
  • Natives JS zum Erzielen eines Feuerwerkeffekts
  • Sehr schöner js Feuerwerkseffekt
  • js, um einen Klick-Feuerwerk-Effekt zu erzielen
  • JavaScript zum Erzielen von Feuerwerkseffekten (objektorientiert)
  • JavaScript implementiert Feuerwerkseffekte mit Soundeffekten
  • JavaScript implementiert fünf verschiedene Feuerwerkseffekte

<<:  MySQL verwendet gespeicherte Prozeduren, um die Methode zur Erfassung von Baumknoten zu implementieren

>>:  Änderung des Zeitzonenproblems von MySQL-Containern in Docker

Artikel empfehlen

Lösung für EF (Entity Framework)-Einfüge- oder Aktualisierungsfehler

Fehlermeldung: Die Store-Update-, Insert- oder De...

MySQL 8.0 MIT Abfragedetails

Inhaltsverzeichnis Informationen zu WITH-Abfragen...

JavaScript zum Implementieren der Anzeige von Suchdaten

In diesem Artikel wird der Datenanzeigecode für d...

So löschen Sie zusätzliche Kernel in Ubuntu

Schritt 1: Den aktuellen Kernel anzeigen rew $ un...

So verwenden Sie die JSZip-Komprimierung in CocosCreator

CocosCreator-Version: 2.4.2 Praktische Projektanw...

So entwerfen und optimieren Sie MySQL-Indizes

Inhaltsverzeichnis Was ist ein Index? Prinzip der...

So ändern Sie die inländische Imagequelle für Docker

Konfigurieren Sie den Beschleuniger für den Docke...

Eine kurze Analyse des Zustandsverständnisses von React

Wie definiert man komplexe Komponenten (Klassenko...

mysql Backup-Skript und halten Sie es für 7 Tage

Skriptanforderungen: Sichern Sie die MySQL-Datenb...

So löschen Sie Ordner, Dateien und Dekomprimierungsbefehle auf Linux-Servern

1. Ordner löschen Beispiel: rm -rf /usr/java Das ...

Online- und Offlineinstallation von Docker und allgemeine Befehlsvorgänge

1. Testumgebung Name Version centos 7.6 Docker 18...