JavaScript-Canvas zum Erzielen eines Regentropfeneffekts

JavaScript-Canvas zum Erzielen eines Regentropfeneffekts

In diesem Artikelbeispiel wird der spezifische Code für JavaScript-Canvas zum Erzielen von Regentropfeneffekten zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt

Sehen Sie zuerst den Effekt

Es sieht sehr cool aus, realisiert aber tatsächlich das Fallen der Regentropfen und den abschließenden Kreis.

Oder schauen Sie sich den Quellcode an

<!DOCTYPE html>
<html lang="de">

<Kopf>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0">
    <title>Dokument</title>
    <Stil>
        * {
            Rand: 0;
            Polsterung: 0;
        }

        Körper {
            Hintergrundfarbe: #000;
        }
    </Stil>
</Kopf>

<Text>
    <Leinwand></Leinwand>
    <Skript>
        //Leinwand abrufen var canvas = document.querySelector('canvas')
        // Den Pinsel holen var ctx = canvas.getContext('2d')
        // Leinwandgröße kann mit CSS nicht geändert werden, var ch = canvas.height = window.innerHeight
        var cw = canvas.width = window.innerWidth
        // Regentropfen freigeben var arrRain = []
        // Bildschirmgröße überwachen und Leinwandgröße entsprechend ändern window.onresize = function () {
            ch = Leinwand.Höhe = Fenster.Innenhöhe
            cw = Leinwand.Breite = Fenster.Innenbreite
        }
        // Erhalte eine Zufallszahl um zufällige Regentropfen zu erzeugen function randow(min, max) {
            return Math.random() * (max - min) + min
        }
        // Konstruktorfunktion Rain() {

        }
        // Eigenschaften und Methoden zu rain hinzufügen Rain.prototype = {
            // Initialisiere die Position und den Radius des Kreises, auf den die Regentropfen fallen init: function () {
                dies.x = zufällig(0, cw)
                dies.y = 0
                // Die Entfernung, die die Regentropfen schließlich auf dem Boden zurücklegen, darf den Bildschirm nicht überschreiten. this.h = randow(0,8 * ch, 0,9 * ch)
                this.r = 1 // Startradius des Kreises this.vr = 1 // Geschwindigkeit, mit der der Radius wächst this.vy = randow(4, 5)

            },
            // Zeichenmethode draw: function () {
                // Wenn es kleiner als h ist, zeichne Regentropfen und Rechtecke if (this.y < this.h) {
                    ctx.beginPath()
                    ctx.fillStyle = "weiß"
                    ctx.fillRect(dieses.x, dies.y, 4, 10)
                } anders {
                    // Zeichne einen Kreis ctx.beginPath()
                    ctx.strokeStyle = "weiß"
                    ctx.arc(dieses.x, dies.y, dies.r, 0, 2 * Math.PI)
                    ctx.stroke()
                }
            },
            //Regentropfenbewegung move: function () {
                // Wenn es kleiner als h ist, addiere y, um die Regentropfen zu bewegen, if (this.y < this.h) {
                    dies.y += dies.vy
                } anders {
                    // Erziele den Effekt von spritzendem Wasser if (this.r < 70) {
                        dies.r += dies.vr
                    } anders {
                        // Initialisieren Sie nach dem Ende des Effekts und erzeugen Sie Regentropfen vom Himmel. Rufen Sie dazu die Init-Funktion this.init() auf.
                    }
                }
                dies.zeichnen()
            }
        }
        // Regentropfen erzeugen Funktion createRain(num) {
            für (var i = 0; i < num; i++) {
                // Regentropfen zufällig generieren, nicht gleichzeitig setTimeout(function () {
                    var regen = neuer Regen()
                    regen.init()
                    regen.zeichnen()
                    arrRain.push(Regen)
                }, 300 * ich)
            }
        }
        Regen erzeugen(60)
        setzeIntervall(Funktion () {
            ctx.beginPath()
            ctx.fillStyle = "rgba(0,0,0,0,0,05)"
            ctx.fillRect(0, 0, cw, ch)
            für (var k von arrRain) {
                k. bewegen()
            }
        }, 1000 / 80)
    </Skript>
</body>

</html>

Dies sind die von Raindrops implementierten Quellcodes, nur zu Referenzzwecken.

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:
  • JavaScript-Canvas zum Erzielen von Regentropfeneffekten

<<:  Wissenspunkte zum Prinzip der MySQL-Join-Abfrage

>>:  Drei Möglichkeiten zum Weiterleiten des Linux-SSH-Ports

Artikel empfehlen

So fügen Sie Nginx zu den Systemdiensten in CentOS7 hinzu

Einführung Nach dem Kompilieren, Installieren und...

So entwickeln Sie eine Progressive Web App (PWA)

Inhaltsverzeichnis Überblick Erfordern URL der An...

Spezifische Verwendung des Vollbild-Scrollens von fullpage.js

1.fullpage.js Download-Adresse https://github.com...

So überprüfen Sie die PCIe-Version und -Geschwindigkeit unter Linux

PCIE verfügt über vier verschiedene Spezifikation...

JavaScript implementiert eine Eingabefeldkomponente

In diesem Artikelbeispiel wird der spezifische Co...

Häufige Fehler beim Schreiben von HTML-Tags

Wir sollten besser aufpassen, denn die HTML-Poliz...

Lernunterlagen zum Schreiben des ersten Vue-Programms

Inhaltsverzeichnis 1. Schreiben Sie ein HTML, das...

Das WeChat-Applet verwendet Canvas zum Zeichnen von Uhren

In diesem Artikel wird der spezifische Code zur V...

Vergleich der Leistung von int, char und varchar in MySQL

Im Internet kursieren viele scheinbar wahre „Gerü...

Beispiel für den schnellen Aufbau einer LEMP-Umgebung mit Docker

LEMP (Linux + Nginx + MySQL + PHP) ist heutzutage...

So verhindern Sie, dass Benutzer Webseiteninhalte mit reinem CSS kopieren

Vorwort Als ich mein eigenes persönliches Blog sc...