Canvas API

<canvas>-elementet definierar en bitmap-område i HTML-sidan.

Canvas API tillåter JavaScript att rita grafik på canvas.

Canvas API kan rita former, linjer, kurvor, rutor, text och bilder, samt färg, rotation, transparens och andra pixeloperationer.

Lägg till Canvas till HTML

Du kan lägga till canvas-elementet i HTML-sidan på vilket som helst ställe med <canvas>-tagget:

Exempel

<canvas id="myCanvas" width="300" height="150"></canvas>

Prova själv

Hur man komma åt Canvas-elementet

Du kan använda HTML DOM-metoden getElementById() för att komma åt <canvas>-elementet:

const myCanvas = document.getElementById("myCanvas");

För att rita på canvas måste du skapa ett 2D-ritkontextobjekt:

const ctx = myCanvas.getContext("2d");

Anteckningar

HTML <canvas>-elementet har inga ritfunktioner.

Du måste använda JavaScript för att rita alla图形.

getContext()-metoden returnerar ett objekt med ritverktyg (metoder).

Rita på canvas

Efter att ha skapat 2D-ritkontexten kan du rita på canvas.

Nedan har fillRect()-metoden ritat en svart rektangel, med övre vänstra hörnet vid position 20,20. Rektangelns bredd är 150 pixlar, höjden 100 pixlar:

Exempel

const myCanvas = document.getElementById("myCanvas");
const ctx = myCanvas.getContext("2d");
ctx.fillRect(20, 20, 150, 100);

Prova själv

Använd färg

fillStyle-attributet ställer in färgen för fyllningen av ritobjektet:

Exempel

const myCanvas = document.getElementById("myCanvas");
const ctx = myCanvas.getContext("2d");
ctx.fillStyle = "red";
ctx.fillRect(20, 20, 150, 100);

Prova själv

Du kan också använda document.createElement() för att skapa ett nytt <canvas>-element och lägga till det i den befintliga HTML-sidan:

Exempel

const myCanvas = document.createElement("canvas");
document.body.appendChild(myCanvas);
const ctx = myCanvas.getContext("2d");
ctx.fillStyle = "red";
ctx.fillRect(20, 20, 150, 100);

Prova själv

Väg

En vanlig metod för att rita på canvas är:

  1. Börja med en bana - beginPath()
  2. Flytta till en punkt - moveTo()
  3. Rita i banan - lineTo()
  4. Rita en bana - stroke()

Exempel

const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(20, 20);
ctx.lineTo(20, 100);
ctx.lineTo(70, 100);
ctx.stroke();

Prova själv

Färg, stil och skuggor

egenskaper Beskrivning
fillStyle Ställ in eller returnera färgen, gradienten eller mönstret för fyllning.
strokeStyle Ställ in eller returnera färgen, gradienten eller mönstret för sträckor.
shadowColor Ställ in eller returnera färgen för skuggor.
shadowBlur Ställ in eller returnera suddighetens nivå för skuggor.
shadowOffsetX Ställ in eller returnera det horisontella avståndet från skuggan till formen.
shadowOffsetY Ställ in eller returnera den vertikala avståndet från skuggan till formen.
Metoder Beskrivning
createLinearGradient() Skapa en linjär gradient (används för canvasinnehåll).
createPattern() Upprepa det specificerade elementet i den specificerade riktningen.
createRadialGradient() Skapa en radial/cirkulär gradient (används för canvasinnehåll).
addColorStop() Bestäm färgen och stoppläget i en gradientobjekt.

Linjestil

egenskaper Beskrivning
lineCap Ställ in eller returnera stilen på linjens ändar.
lineJoin Ställ in eller returnera typen av vinkel som skapas när två linjer korsar varandra.
lineWidth Ställ in eller returnera den nuvarande linjethicken.
miterLimit Ställ in eller returnera den maximala skrålängden.

Rektangel

Metoder Beskrivning
rect() Skapa en rektangel.
fillRect() Rita en 'fylld' rektangel.
strokeRect() Rita en rektangel (ingen fyllning).
clearRect() Rensa de specificerade pixeln inom den givna rektangeln.

Väg

Metoder Beskrivning
fill() Fyll den nuvarande grafiken (vägen).
stroke() Tillämpa faktiskt den definierade vägen.
beginPath() Börja vägen eller återställ den nuvarande vägen.
moveTo() Flytta vägen till den specificerade punkten på canvasen utan att skapa en linje.
closePath() Skapa en väg från den nuvarande punkten till startpunkten.
lineTo() Lägg till en ny punkt och skapa en linje från den punkten till den sista specificerade punkten på canvasen.
clip() Skär av en valfri form och storlek från den ursprungliga canvasen.
quadraticCurveTo() Skapa en kvadratisk Bezier-kurva.
bezierCurveTo() Skapa en tredjedels Bezier-kurva.
arc() Skapa en båge/kurva (används för att skapa en cirkel eller en del av en cirkel).
arcTo() Skapa en båge/kurva mellan två tangentlinjer.
isPointInPath() Returnerar true om den angivna punkten finns i den nuvarande vägen, annars returnerar false.

Transformation

Metoder Beskrivning
scale() Förstora eller förminska den nuvarande grafiken.
rotate() Rotera den nuvarande grafiken.
translate() Återmapping av (0,0) positionen på canvasen.
transform() Ersätt den nuvarande transformationen för ritningen.
setTransform() Återställ den nuvarande transformationen till en enhetsmatris. Kör sedan transform().

Text

egenskaper Beskrivning
font Ställ in eller returnera den nuvarande teckengraden för textinnehåll.
textAlign Ställ in eller returnera den nuvarande justeringsmetoden för textinnehåll.
textBaseline Ställer in eller returnerar den aktuella textbaslinjen som används för att rita texten.
Metoder Beskrivning
fillText() Rita 'fylld' text på canvasen.
strokeText() Rita text på canvasen (utan fyllning).
measureText() Returnerar ett objekt som innehåller den specificerade textens bredd.

Bildritning

Metoder Beskrivning
drawImage() Rita bilder, canvas eller video på canvasen.

Pixelhantering

egenskaper Beskrivning
width Returnerar bredden på ImageData-objektet.
height Returnerar höjden på ImageData-objektet.
data Returnerar ett objekt som innehåller bilddata från det specificerade ImageData-objektet.
Metoder Beskrivning
createImageData() Skapar ett nytt tomt ImageData-objekt.
getImageData() Returnerar ett ImageData-objekt som kopierar pixeldata från den specificerade rektangeln på canvasen.
putImageData() Lägger tillbaka bilddata (från det specificerade ImageData-objektet) på canvasen.

Komposition

egenskaper Beskrivning
globalAlpha Ställer in eller returnerar den aktuella alfanivå eller transparensen för ritning.
globalCompositeOperation Ställer in eller returnerar hur en ny bild ska ritas på den befintliga bilden.

Andra

Metoder Beskrivning
save() Sparar den aktuella kontextens status.
restore() Återställer tidigare sparad bane- och egenskapsstatus.
createEvent()
getContext()
toDataURL()

standardegenskaper och händelser

canvas-objektet stöder både standardegenskaperochHändelser.

Relaterade sidor

HTML Handledning:HTML5 Canvas

HTML Bildhandledning:HTML CanvasHandledning

HTML Referenshandbok:HTML <canvas> tag