HTML DOM Canvas objekt

<canvas>-elementet definierar en bitmappsområ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-element med <canvas>-taggen på valfri plats i HTML-sidan:

Exempel

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

Prova själv

Hur man kommer å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- kontextobjekt:

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

Anteckningar

HTML <canvas>-elementet har ingen ritfunktion.

Du måste använda JavaScript för att rita några grafiska element.

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

Rita på canvas

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

Nedan har fillRect() -metoden ritat en svart rektangel, whose översta vänstra hörn ligger på position 20,20. Rektangelns bredd är 150 pixlar, och höjden är 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 -egenskapen ställer in fyllningsfärgen för 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() -metoden för att skapa ett nytt <canvas>-element och lägga till detta element 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å en canvas är:

  1. Börja en väg - beginPath()
  2. Flytta till en punkt - moveTo()
  3. Rita i en väg - lineTo()
  4. Rita en väg - 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 skugga

egenskaper Beskrivning
fillStyle Ställ in eller återge färgen, gradienten eller mönstret för fyllning.
strokeStyle Ställ in eller återge färgen, gradienten eller mönstret för kantlinjen.
shadowColor Ställ in eller återge färgen för skuggan.
shadowBlur Ställ in eller återge suddighetsnivån för skuggan.
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.
Metod Beskrivning
createLinearGradient() Skapa en linjär gradient (används för kanvashållning).
createPattern() Upprepa de specificerade elementen i en given riktning.
createRadialGradient() Skapa en radial/cirkulär gradient (används för kanvashållning).
addColorStop() Bestäm färgen och slutpositionen i en gradientobjekt.

Linhaug

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 aktuella linjebredden.
miterLimit Ställ in eller returnera den maximala skarpvinkeln.

Rektangel

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

Väg

Metod Beskrivning
fill() Fyll den aktuella grafiken (vägen).
stroke() Tillämpa faktiskt den definierade vägen.
beginPath() Börja vägen eller återställ den aktuella vägen.
moveTo() Flytta vägen till den specificerade punkten på kartan utan att skapa en linje.
closePath() Skapa en väg från den aktuella punkten till startpunkten.
lineTo() Lägg till en ny punkt och skapa en linje från denna punkt till den sista specificerade punkten på kartan.
clip() Klipp ut en valfri form och storlek från den ursprungliga kartan.
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å snittlinjer.
isPointInPath() Returnera true om den angivna punkten finns i den aktuella vägen, annars returnera false.

Transformation

Metod Beskrivning
scale() Förstora eller förminska den aktuella grafiken.
rotate() Rotera den aktuella grafiken.
translate() Återställ kartans (0,0) position.
transform() Ersätt den aktuella transformationen för ritningen.
setTransform() Återställ den aktuella transformationen till enhetsmatrisen. Sedan kör transform().

Text

egenskaper Beskrivning
font Ställ in eller returnera den aktuella teckensnittsinställningen för textinnehållet.
textAlign Ställ in eller returnera den aktuella justeringen av textinnehållets position.
textBaseline Ställer in eller returnerar den aktuella textbaslinjen som används för att rita texten.
Metod 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

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

Pixeloperationer

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.
Metod 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 den specificerade ImageData-objektet) till canvasen.

Kombinering

egenskaper Beskrivning
globalAlpha Ställer in eller returnerar den aktuella alfa- eller genomsnittsvärdet för ritning.
globalCompositeOperation Ställer in eller returnerar hur en ny bild ska ritas över en befintlig bild.

Andra

Metod Beskrivning
save() Sparar den aktuella kontextens status.
restore() Återställer tidigare sparade stigsstatus och egenskaper.
createEvent()
getContext()
toDataURL()

standardegenskaper och händelser

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

Relaterade sidor

HTML guide:HTML5 canvas

HTML bild guide:HTML Canvas guide

HTML referenshandbok:HTML <canvas> tag