HTML DOM Canvas objekt

<canvas>-elementet definerer et bitmapområde i HTML-siden.

Canvas API giver JavaScript mulighed for at tegne grafik på canvas.

Canvas API kan tegne former, linjer, kurver, rammer, tekst og billeder, samt farver, rotation, gennemsigtighed og andre pixeloperationer.

Tilføj Canvas til HTML

Du kan tilføje canvas-elementet på hvilken som helst placering i HTML-siden med <canvas>-tagget:

Eksempel

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

Prøv det selv

Sådan tilgår du Canvas-elementet

Du kan bruge HTML DOM-metoden getElementById() til at tilgå <canvas>-elementet:

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

Hvis du vil tegne på canvas, skal du oprette en 2D kontekst:

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

Noter

HTML <canvas>-elementet har ingen tegningsfunktioner.

Du skal bruge JavaScript til at tegne alle grafikker.

getContext() metoden returnerer et objekt med tegningsværktøjer (metoder).

Tegn på canvas

Efter at have oprettet en 2D kontekst kan du tegne på canvas.

Nedenstående fillRect() metode tegner en sort rektangel, hvis øvre venstre hjørne er placeret ved position 20,20. Rektanglen er 150 pixel bred og 100 pixel høj:

Eksempel

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

Prøv det selv

Brug farve

fillStyle-eegenskaben indstiller farven på tegningsobjektet:

Eksempel

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

Prøv det selv

Du kan også bruge document.createElement() til at oprette et nyt <canvas>-element og tilføje det til den eksisterende HTML-side:

Eksempel

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

Prøv det selv

sti

En almindelig metode til at tegne på et canvas er:

  1. Start en sti - beginPath()
  2. Flyt til en punkt - moveTo()
  3. Tegn i stien - lineTo()
  4. Tegn en sti - stroke()

Eksempel

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();

Prøv det selv

Farve, stil og skygge

egenskaber Beskrivelse
fillStyle Indstil eller returner farve, stil eller mønster, der bruges til at fylde tegningen.
strokeStyle Indstil eller returner farve, stil eller mønster, der bruges til penselstreger.
shadowColor Indstil eller returner farven, der bruges til skyggen.
shadowBlur Indstil eller returner skyggeens slørlighed.
shadowOffsetX Indstil eller returner den horisontale afstand fra skyggen til formen.
shadowOffsetY Indstil eller returner den vertikale afstand fra skyggen til formen.
Metode Beskrivelse
createLinearGradient() Opret en lineær farvegrad (bruges til canvasindhold).
createPattern() G gentag det angivne element i en bestemt retning.
createRadialGradient() Opret en radial/cirkulær farvegrad (bruges til canvasindhold).
addColorStop() Definer farver og stoppositioner i en farvegrad.

Linjestil

egenskaber Beskrivelse
lineCap Indstil eller returner stilkappens stil.
lineJoin Indstil eller returner typen af vinkel, der oprettes, når to linjer krydses.
lineWidth Indstil eller returner den nuværende linjebredde.
miterLimit Indstil eller returner den maksimale skråningens længde.

rektangel

Metode Beskrivelse
rect() Opret en rektangel.
fillRect() Tegn en 'fyldt' rektangel.
strokeRect() Tegn en rektangel (uden fyldning).
clearRect() Fjern de angivne pixel inden for den givne rektangel.

sti

Metode Beskrivelse
fill() Fyld den nuværende grafik (sti).
stroke() Faktisk tegn den definerede sti.
beginPath() Start en sti eller nulstil den nuværende sti.
moveTo() Flyt stien til den angivne punkt på canvas uden at oprette en linje.
closePath() Opret en sti fra den nuværende punkt til startpunktet.
lineTo() Tilføj en ny punkt og opret en linje fra dette punkt til den sidste angivne punkt på canvas.
clip() Skær en vilkårlig form og størrelse fra den oprindelige canvas.
quadraticCurveTo() Opret en kvadratisk Bézier-kurve.
bezierCurveTo() Opret en tredobbel Bézier-kurve.
arc() Opret en bue/kurve (bruges til at oprette en cirkel eller en del af en cirkel).
arcTo() Opret en bue/kurve mellem to snitlinjer.
isPointInPath() Returner true, hvis den angivne punkt er i den nuværende sti, ellers returner false.

Konvertering

Metode Beskrivelse
scale() Forstør eller formindsk den nuværende grafik.
rotate() Roter den nuværende grafik.
translate() Genmapp den nuværende (0,0) position på canvas.
transform() Erstat den nuværende konverteringsmatrix for tegning.
setTransform() Nulstil den nuværende konvertering til en enhedsmatrix. Derefter kør transform().

tekst

egenskaber Beskrivelse
font Indstil eller returner de nuværende skrifttypeegenskaber for tekstindhold.
textAlign Indstil eller returner den nuværende justering af tekstindholdets tekstretning.
textBaseline Indstil eller returner den nuværende tekstbase linje, der bruges til tegning af tekst.
Metode Beskrivelse
fillText() Tegner 'fyldt' tekst på canvaset.
strokeText() Tegner tekst på canvaset (uden fyldning).
measureText() Returnerer et objekt, der indeholder den angivne tekstbredde.

Billedtegning

Metode Beskrivelse
drawImage() Tegner billeder, canvas eller video på canvaset.

Pixeloperationer

egenskaber Beskrivelse
width Returnerer bredden på ImageData objektet.
height Returnerer højden på ImageData objektet.
data Returnerer et objekt, der indeholder billeddata fra det angivne ImageData objekt.
Metode Beskrivelse
createImageData() Opretter et nyt tomt ImageData objekt.
getImageData() Returnerer et ImageData objekt, der kopierer pixeldata fra den angivne rektangel på canvaset.
putImageData() Lægger billeddata (fra den angivne ImageData objekt) tilbage på canvaset.

Sammensætning

egenskaber Beskrivelse
globalAlpha Indstil eller returner den nuværende alpha eller gennemsigtighedsværdi for tegning.
globalCompositeOperation Indstil eller returner, hvordan et nyt billede skal tegnes på det eksisterende billede.

Andet

Metode Beskrivelse
save() Gemmer den nuværende kontekst tilstand.
restore() Returnerer den tidligere gemte stiplade tilstand og egenskaber.
createEvent()
getContext()
toDataURL()

standard egenskaber og begivenheder

canvas objektet understøtter både standardegenskaberogBegivenheder.

Relaterede sider

HTML vejledning:HTML5 canvas

HTML billed vejledning:HTML Canvas vejledning

HTML referencer:HTML <canvas> tag