einführenDieser Effekt wird mit Canvas gezeichnet und dann mithilfe der Klassenvererbung implementiert. Wenn sich die Maus an die angegebene Canvas-Position bewegt, wird an der aktuellen Mausposition ein kleiner Ball in zufälliger Farbe erzeugt, der dann langsam verschwindet. Wirkungsdiagramm Implementierungsschritte
HTML-Struktur <!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0"> <title>Schöne Bälle</title> <Stil> #Leinwand{ Rand links: 100px } </Stil> </Kopf> <Text> <canvas id="canvas">Ihr Browser unterstützt Canvas nicht</canvas> <!-- <script src="./underscore-min.js"></script> --> <!-- Underscore hat bereits eine gepackte _.random-Funktion. Sie müssen keine Zufallsfunktion manuell schreiben, indem Sie sie importieren. --> <script src="./index.js"></script> </body> </html> Erstellen einer Canvas-Umgebung// index.js // 1. Aktuelle Leinwand abrufen const canvas = document.getElementById('canvas'); const ctx = canvas.getContext('2d'); // Leinwandgröße festlegen Stil canvas.width = 1000; Leinwandhöhe = 600; Leinwand.Stil.Hintergrundfarbe = "#000" Beispielanalyse Suchen Sie zuerst das Canvas-Element: const canvas = document.getElementById("myCanvas"); Erstellen Sie dann das Kontextobjekt: const ctx = canvas.getContext('2d'); Legen Sie die Hintergrundfarbe für Breite und Höhe fest Schreibball// index.js // 2. Ball Klasse Klasse Ball { Konstruktor (x, y, Farbe) { this.x = x; // x-Achse this.y = y; // y-Achse this.color = color; // Farbe des Balls this.r = 40; // Radius des Balls } // Zeichne den Ball render () { ctx.speichern(); ctx.beginPath(); ctx.arc(dieses.x, dies.y, dies.r, 0, Math.PI * 2); ctx.fillStyle = diese.Farbe; ctx.fill(); ctx.wiederherstellen(); } } Beispielanalyse
Implementieren Sie die MoveBall-Klasse, die die Ball-Klasse erbt// index.js // 3. Klasse die den Ball bewegt class MoveBall extends Ball { // Erbt Konstruktor (x, y, color) { super(x, y, Farbe); // Änderung der Menge // Zufällige Koordinaten des Balls this.dX = Random(-5, 5); dies.dY = Zufallsprinzip(-5, 5); // Zufallszahl für abnehmenden Radius, da der Ball zuerst groß ist und dann langsam verschwindet. this.dR = Random(1, 3); } // 4. Ändere die Position und den Radius des Balles upDate () { dies.x += dies.dX; dies.y += dies.dY; dies.r -= dies.dR; // Bestimmen Sie, ob der Radius des Balls kleiner als 0 ist wenn(dies.r < 0) { this.r = 0 // Ein Radius von 0 bedeutet, dass der Ball verschwindet} } } Beispielanalyse
Instanziieren Sie den Ball// index.js // 5. Instanziieren Sie den Ball // Speichern Sie den generierten Ball let ballArr = []; // Zufallsfunktion definieren Wenn Sie auf underscore-min.js verweisen, müssen Sie keine Zufallsfunktion schreiben, sondern können direkt _.random verwenden lass Random = (min, max) => { gibt Math.floor(Math.random() * (max - min) + min) zurück; } // Auf Mausbewegungen achten canvas.addEventListener('mousemove', function (e){ // Zufällige Farben // Sie können auch ein festes Farbarray verwenden let colorArr = ['rot', 'grün', 'blau', 'gelb', 'orange', 'pink']; // Hintergrundfarbe ==> FarbeArr[Zufällig(0, FarbeArr.Länge - 1)] Lassen Sie bgColor = `rgb(${Random(0,256)}, ${Random(0,256)}, ${Random(0,256)})`; ballArr.push(neuer MoveBall(e.offsetX, e.offsetY, bgColor)); Konsole.log(ballArr); }) //Starte den Timer setInterval(function () { // Bildschirm löschen ctx.clearRect(0, 0, canvas.width, canvas.height); // Zeichne den Ball für (let i = 0 ; i < ballArr.length; i++ ) { ballArr[i].render(); ballArr[i].upDate(); } }, 50); Beispielanalyse
Wir können sehen, dass der Radius des Balls, der den Bildschirm nicht verlässt, allmählich kleiner wird, aber der Ball verschwindet am Ende nicht. Das ist definitiv nicht der Effekt, den wir wollen! Welchen Effekt hat das Löschen des Bildschirms? Es ist der Effekt vom Anfang des Artikels! (Baby, hab Spaß❤) index.js vollständiger Code// 1. Aktuelle Leinwand abrufen const canvas = document.getElementById('canvas'); const ctx = canvas.getContext('2d'); // Leinwandgröße festlegen Stil canvas.width = 1000; Leinwandhöhe = 600; Leinwand.Stil.Hintergrundfarbe = "#000" // 2. Ball Klasse Klasse Ball { Konstruktor (x, y, Farbe) { dies.x = x; dies.y = y; diese.farbe = Farbe; dies.r = 40; } // Zeichne den Ball render () { ctx.speichern(); ctx.beginPath(); ctx.arc(dieses.x, dies.y, dies.r, 0, Math.PI * 2); ctx.fillStyle = diese.Farbe; ctx.fill(); ctx.wiederherstellen(); } } // 3. Klasse die den Ball bewegt class MoveBall extends Ball { // Erbt Konstruktor (x, y, color) { super(x, y, Farbe); // Änderung der Menge // Zufällige Koordinaten des Balls this.dX = Random(-5, 5); dies.dY = Zufallsprinzip(-5, 5); // Zufallszahl mit kleinerem Radius this.dR = Random(1, 3); } // 4. Ändere die Position und den Radius des Balles upDate () { dies.x += dies.dX; dies.y += dies.dY; dies.r -= dies.dR; // Bestimmen Sie, ob der Radius des Balls kleiner als 0 ist wenn(dies.r < 0) { dies.r = 0 } } } // 5. Instanziieren Sie den Ball // Speichern Sie den generierten Ball let ballArr = []; // Zufallsfunktion definieren Wenn Sie auf underscore-min.js verweisen, müssen Sie keine Zufallsfunktion schreiben, sondern können direkt _.random verwenden lass Random = (min, max) => { gibt Math.floor(Math.random() * (max - min) + min) zurück; } // Auf Mausbewegungen achten canvas.addEventListener('mousemove', function (e){ // Zufällige Farben // Sie können auch ein festes Farbarray verwenden let colorArr = ['rot', 'grün', 'blau', 'gelb', 'orange', 'pink']; // Hintergrundfarbe ==> FarbeArr[Zufällig(0, FarbeArr.Länge - 1)] Lassen Sie bgColor = `rgb(${Random(0,256)}, ${Random(0,256)}, ${Random(0,256)})`; ballArr.push(neuer MoveBall(e.offsetX, e.offsetY, bgColor)); Konsole.log(ballArr); }) //Starte den Timer setInterval(function () { // Bildschirm löschen ctx.clearRect(0, 0, canvas.width, canvas.height); // Zeichne den Ball für (let i = 0 ; i < ballArr.length; i++ ) { ballArr[i].render(); ballArr[i].upDate(); } }, 50); ZusammenfassenIch hoffe, diese kleine Demo kann Ihnen dabei helfen, sich mit dem Verständnis und der Verwendung von Klassen in ES6 vertraut zu machen. Dies ist das Ende dieses Artikels darüber, wie Sie mithilfe der ES6-Klassenvererbung den Effekt wunderschöner kleiner Bälle erzielen können. Weitere relevante Inhalte zur ES6-Klassenvererbung zum Erzielen kleiner Bälle finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Zusammenfassung der Verwendung von Linux-SFTP-Befehlen
>>: Beispieloperation für die Summe des Mysql-Varchar-Typs
Es gibt viele Möglichkeiten, eine globale ID zu g...
1. Einführung in TypeScript Im vorherigen Artikel...
Da myeclipse2017 und idea2017 auf dem Computer in...
Es gibt eine andere Baumstruktur Javascript-Objek...
Inhaltsverzeichnis 1. Ressourcendateien 2. Instal...
NProgress ist der Fortschrittsbalken, der oben im...
Die -9999-Pixel-Bildersetzungstechnologie ist seit...
Inhaltsverzeichnis Logische Schichtung Trennen Si...
Ich habe kürzlich an einem Projekt gearbeitet und...
Inhaltsverzeichnis Vorwort Text 1. Globale Regist...
Ich habe gerade Ubuntu installiert und als ich es...
Inhaltsverzeichnis Grundlegende Selektorerweiteru...
Heute ist bei mir ein Problem aufgetreten, als ic...
Dieser Artikel fasst die Wissenspunkte zu MySql-I...
Popup-Fenster werden in der tatsächlichen Entwick...