Heim >Web-Frontend >js-Tutorial >HTML5 -Leinwand -Tutorial: Eine Einführung
Eines der wichtigsten Instrumente im Toolkit eines Malers ist die Leinwand. Es gibt ihnen die Freiheit, alle möglichen Gefühle, Eindrücke, Ideen usw. in fast unbegrenzten Variationen und Kombinationen auszudrücken. Und diese Freiheit kann nur durch zwei Dinge eingeschränkt werden - ihre Fähigkeiten und ihre Vorstellungskraft.
Die Situation in der Webentwicklungswelt ist ähnlich. Mit dem anhaltenden Fortschritt von HTML5 und ihren leistungsstarken Spezifikationen haben Webentwickler die Fähigkeit erlangt, Dinge zu tun, die in der Vergangenheit unmöglich waren. Das Zeichnen von Grafiken und das direkte Erstellen von Animationen im Browser ist jetzt dank einer Technologie, die als HTML5 -Leinwand bezeichnet wird, durchaus möglich.
Was ist HTML5 -Leinwand?
Was ist so toll an HTML5 -Leinwand?
ok, Canvas ist großartig. Aber was genau kann es verwenden? Mal sehen.
Jetzt, da wir wissen, warum wir Leinwand lernen sollten, schauen wir uns die Grundlagen von HTML5 -Leinwand an und wie man sie verwendet.
Jedes HTML5 -Canvas -Element muss einen -Kontext haben. Der Kontext definiert, welche HTML5 -Canvas -API Sie verwenden werden. Der 2D -Kontext wird zum Zeichnen von 2D -Grafiken und zum Manipulieren von Bitmap -Bildern verwendet. Der 3D -Kontext wird für die Erstellung und Manipulation von 3D -Grafiken verwendet. Letzteres wird tatsächlich WebGL bezeichnet und basiert auf OpenGl ES.
Um mit Leinwand zu beginnen, benötigen Sie lediglich ein Code -Editor und ein Browser mit HTML5 -Canvas -Unterstützung. Ich benutze sublime Text und Google Chrome, aber Sie können alles verwenden, was Sie wollen.
Unser HTML zu beginnen wird so aussehen:
<span><span><span><canvas</span> id<span>="exampleCanvas"</span> width<span>="500"</span> height<span>="300"</span>></span> </span> <span><!-- OPTION 1: leave a message here if browser doesn't support canvas --> </span> <span><span><span><p</span>></span>Your browser doesn’t currently support HTML5 Canvas. </span> Please check caniuse.com/#feat=canvas for information on browser support for canvas.<span><span><span></p</span>></span> </span> <span><!-- OPTION 2: put fallback content (text, image, Flash, etc.) </span><span> if the browser doesn't support canvas --> </span> <span><span><span></canvas</span>></span></span>
Und hier ist unser JavaScript, das wir am Ende unserer HTML -Seite aufnehmen können:
<span>var canvas = document.getElementById('exampleCanvas'), </span> context <span>= canvas.getContext('2d'); </span> <span>// code examples will continue here...</span>
standardmäßig erstellt der Browser Leinwandelemente mit einer Breite von 300 Pixel und einer Höhe von 150 Pixel, auch wenn diese nicht im HTML angegeben sind. Sie können die Größe ändern, indem Sie die Breite und Höhe angeben, wie ich es im HTML getan habe.
Beachten Sie auch, dass wir der Leinwand ein ID -Attribut gegeben haben, das wir in unserem JavaScript verwenden werden. Und schließlich können Sie, wenn Sie möchten, CSS verwenden, um einen Rand hinzuzufügen, um die Leinwand mit einem dünnen Rahmen sichtbar zu machen. Dies ist nicht erforderlich, es wird als visuelle Hilfe für uns verwendet, um die Grenze des Canvas -Elements zu sehen.
Beachten Sie, dass ich zwischen dem Öffnen und Schließen
Das JavaScript beginnt mit zwei Zeilen. In der ersten Zeile erstellen wir eine Variable, die unser Canvas -Element über seine ID zwischengeschnitten hat. Die zweite Zeile erstellt eine Variable (Kontext), die den 2D -Kontext für die Leinwand unter Verwendung der Funktion getContext () verweist. Wir werden die Kontextvariable verwenden, um auf alle Leinwandzeichnungsfunktionen und Eigenschaften zuzugreifen.
Mit unseren Leinwand können wir mit der Leinwand -API experimentieren. Lassen Sie uns vorher jedoch einige weitere Aspekte der Leinwandfunktion klarstellen.
Neben der Breite und der Höhenattribute des Canvas -Elements können Sie auch CSS verwenden, um die Größe eines Canvas -Elements festzulegen. Die Größe eines Canvas -Elements mit CSS ist jedoch nicht dasselbe wie das Einstellen der Breiten- und Höhenattribute des Elements. Dies liegt daran, dass eine Leinwand tatsächlich zwei Größen hat: die Größe des Elements selbst und die Größe der Zeichenfläche des Elements.
Wenn Sie die Breiten- und Höhenattribute des Elements festlegen, setzen Sie sowohl die Größe des Elements als auch die Größe der Zeichnungsfläche des Elements. Wenn Sie jedoch CSS verwenden, um ein Canvas -Element zugrößen, setzen Sie nur die Größe des Elements und nicht die Zeichenfläche. Wenn die Größe des Canvas -Elements nicht mit der Größe seiner Zeichnungsfläche übereinstimmt, skaliert der Browser die Zeichnungsoberfläche, um das Element anzupassen.
Aus diesem Grund ist es eine gute Idee, die Breite und die Höhenattribute des Canvas -Elements zu verwenden, um das Element zu schießen, anstatt CSS zu verwenden.
In einem 2D -Bereich werden Positionen mit X- und Y -Koordinaten verwiesen. Die x -Achse erstreckt sich horizontal und die y -Achse erstreckt sich vertikal. Das Zentrum hat eine Position x = 0 und y = 0, die auch als (0, 0) ausgedrückt werden kann. Diese Methode zur Positionierung von Objekten, die in der Mathematik verwendet werden, ist als kartesisches Koordinatensystem bekannt.
Das Canvas-Koordinatensystem legt den Ursprung jedoch in die obere linke Ecke der Leinwand, wobei X-Koordinaten nach rechts zunehmen und Y-Koordinaten nach unten der Leinwand zunehmen. Im Gegensatz zu einem Standard -kartesischen Koordinatenraum hat der Leinwandraum keine sichtbaren negativen Punkte. Die Verwendung negativer Koordinaten führt nicht dazu, dass Ihre Anwendung fehlschlägt. Objekte, die mit negativen Koordinatenpunkten positioniert sind, werden auf der Seite nicht angezeigt.
Wie bereits erwähnt, können Sie viele Arten von Objekten erstellen, darunter Linien, Kurven, Pfade, Formen, Text usw. In den folgenden Beispielen können Sie sehen, wie einige dieser Objekte tatsächlich gezeichnet werden. Ich werde nicht ausführlich auf die Canvas -API eingehen. Dies sind nur leicht zu helfen, ein Gefühl dafür zu bekommen, wie Leinwand funktioniert.
Um eine Linie zu zeichnen, verwenden wir vier Canvas -API -Methoden. Wir beginnen mit der Methode mit BeginnPath (), die den Browser anweist, sich darauf vorzubereiten, einen neuen Weg zu ziehen. Als nächstes verwenden wir die Moveto (X, Y) -Methode, um den Startpunkt der Linie festzulegen. Dann legt die Lineto (x, y) -Methode den Endpunkt fest und zeichnet die Linie, indem die beiden Punkte angeschlossen werden.
Zu diesem Zeitpunkt wird die Linie gezogen, aber sie ist immer noch unsichtbar. Um es sichtbar zu machen, verwenden wir die Stroke () -Methode, um die Linie mit der standardmäßigen schwarzen Farbe anzuzeigen.
<span><span><span><canvas</span> id<span>="exampleCanvas"</span> width<span>="500"</span> height<span>="300"</span>></span> </span> <span><!-- OPTION 1: leave a message here if browser doesn't support canvas --> </span> <span><span><span><p</span>></span>Your browser doesn’t currently support HTML5 Canvas. </span> Please check caniuse.com/#feat=canvas for information on browser support for canvas.<span><span><span></p</span>></span> </span> <span><!-- OPTION 2: put fallback content (text, image, Flash, etc.) </span><span> if the browser doesn't support canvas --> </span> <span><span><span></canvas</span>></span></span>
siehe das Beispiel für Stift -Canvas -Zeile von SitePoint (@sitepoint) auf CodePen.
Um ein Rechteck zu zeichnen, können wir die Methode Fillrect (x, y, Breite, Höhe) verwenden, um die Koordinaten und die Abmessungen zusammen mit der Fillstyle -Eigenschaft einzustellen, um die Füllfarbe einzustellen.
<span>var canvas = document.getElementById('exampleCanvas'), </span> context <span>= canvas.getContext('2d'); </span> <span>// code examples will continue here...</span>
siehe Beispielrechteck -Beispiel für Stift -Leinwand von SitePoint (@sinepoint) auf CodePen.
Beachten Sie, dass das Rechteck in der Nähe der oberen linken Ecke positioniert ist.
Um Text auf der Leinwand zu zeichnen, können wir zusammen mit der Schriftart FULTEXT (String, X, Y) die Schriftart, Größe und Stil des Textes (ähnlich wie bei der Schriftart in CSS) einstellen.
).context<span>.beginPath(); </span>context<span>.moveTo(50, 50); </span>context<span>.lineTo(250, 150); </span>context<span>.stroke();</span>
Siehe das Beispiel für Stift -Leinwand -Text von SitePoint (@sitepoint) auf CodePen.
Sie sollten sich bewusst sein, dass zwar einfaches Zeichnen mit der HTML5 -Canvas -API einfach ist, komplexe Formen und Animationen zu erstellen, einige Mathematik- und Physikwissen erforderlich sind. Eines der besten Bücher zu diesem Thema ist die Foundation HTML5 -Animation mit JavaScript. Dieses Buch ist eine großartige Ressource für das Lernen, Dinge zu verschieben, von einfachen bis komplexen Animationen.
Wenn Sie hier lernen möchten, sind einige Ressourcen:
Die Arbeit mit der „rohen“ HTML5 -Canvas -API kann ein langwieriger Job sein. Aus diesem Grund ist es eine gute Idee, wenn Sie es gut lernen, zu einer guten Leinwandbibliothek zu wechseln, die beschleunigen und Ihre Canvas -Entwicklung erheblich erleichtert.
Hier sind einige beliebte Entscheidungen:
Eine andere Möglichkeit, Ihre HTML5-Canvas-Entwicklung zu beschleunigen, besteht darin, das Ai->-Canvas-Plugin für Adobe Illustrator zu verwenden. In diesem Artikel finden Sie einen Überblick über das Plugin auf SitePoint.
Das ist es. Ich hoffe
häufig gestellte Fragen (FAQs) zu HTML5 CanvasWie kann ich Objekte mit HTML5 -Leinwand animieren? zweite. Jede Neuausziehung wird als Rahmen bezeichnet, und Änderungen der Eigenschaften der Objekte werden zwischen den Rahmen vorgenommen, um die Illusion der Bewegung zu erzeugen. Dies erfolgt typischerweise mit der RequestArimationFrame () -Methode. Dies bedeutet, dass Sie ihnen keine Ereignishandler direkt anbringen können. Sie können jedoch die Interaktivität erreichen, indem Sie die Eigenschaften der Objekte in JavaScript verfolgen und die Leinwand beim Auftreten einer Interaktion neu zeichnen. Speichern Sie den Inhalt einer Leinwand als Bild mit der Methode toDataurl (). Diese Methode gibt eine Daten -URL zurück, die eine Darstellung des Bildes im Format enthält, das durch den Typ -Typ -Parameter angegeben ist Leinwand mit der Methode ClearRect (X, Y, Breite, Höhe). Um die gesamte Leinwand zu löschen, können Sie x und y auf 0 und die Breite und Höhe auf Breite und Höhe der Leinwand einstellen. Leinwand wird in allen modernen Browsern unterstützt, einschließlich Chrome, Firefox, Safari, Opera und Edge. Es wird jedoch nicht im Internet Explorer 8 oder früher unterstützt. Da es sich bei Canvas jedoch um eine API auf niedriger Ebene handelt, enthält sie keine detaillierten Fehlermeldungen. Daher kann das Debuggen herausfordernd sein und beinhaltet oft viel Versuch und Irrtum.
Das obige ist der detaillierte Inhalt vonHTML5 -Leinwand -Tutorial: Eine Einführung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!