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>
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);
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);
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);
sti
En almindelig metode til at tegne på et canvas er:
- Start en sti - beginPath()
- Flyt til en punkt - moveTo()
- Tegn i stien - lineTo()
- 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();
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