Canvas API
- Forrige side HTML Style
- Næste side API Console
<canvas>-elementet definerer et bitmapområde i en HTML-side.
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 et canvas-element i hvilken som helst position på en HTML-side ved hjælp af <canvas>-tagget:
Eksempel
<canvas id="myCanvas" width="300" height="150"></canvas>
Sådan får du adgang til Canvas-elementet
Du kan bruge HTML DOM-metoden getElementById() til at få adgang til <canvas>-elementet:
const myCanvas = document.getElementById("myCanvas");
Hvis du vil tegne på tavlen, skal du oprette en 2D kontekstobjekt:
const ctx = myCanvas.getContext("2d");
Noter
HTML <canvas> elementet har ikke selv tegningsfunktioner.
Du skal bruge JavaScript til at tegne ethvert grafisk element.
getContext() metoden returnerer et objekt med tegningsværktøjer (metoder).
Tegn på tavlen
Efter at have oprettet 2D konteksten kan du tegne på tavlen.
Nedenstående fillRect() metode tegner en sort rektangel, hvis øvre venstre hjørne er placeret i 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 egenskaben 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() metoden til at oprette et nyt <canvas> element og tilføje dette element 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å en tavle er:
- Start stien - beginPath()
- Flyt til en punkt - moveTo()
- Tegn i stien - lineTo()
- Tegn 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 farven, stilen eller mønstret, der bruges til at fylde tegningen. |
strokeStyle | Indstil eller returner farven, stilen eller mønstret, der bruges til kantlinjen. |
shadowColor | Indstil eller returner farven, der bruges til skyggen. |
shadowBlur | Indstil eller returner skyggeens slørligningsgrad. |
shadowOffsetX | Indstil eller returner den horisontale afstand til skyggen fra former. |
shadowOffsetY | Indstil eller returner den vertikale afstand til skyggen fra former. |
Metode | Beskrivelse |
---|---|
createLinearGradient() | Opret en lineær farvegrad (bruges til canvasindhold). |
createPattern() | G gentag de specificerede elementer i en bestemt retning. |
createRadialGradient() | Opret en radial/cirkulær farvegrad (bruges til canvasindhold). |
addColorStop() | Definer farver og stoppositioner i en farvegrad. |
Linetilstand
egenskaber | Beskrivelse |
---|---|
lineCap | Indstil eller returner stilkappen. |
lineJoin | Indstil eller returner typen af vinklen, der oprettes, når to linjer krydser. |
lineWidth | Indstil eller returner den nuværende linjebredde. |
miterLimit | Indstil eller returner den maksimale skråningslængde. |
Rektangel
Metode | Beskrivelse |
---|---|
rect() | Opret en rektangel. |
fillRect() | Tegn en 'fyldt' rektangel. |
strokeRect() | Tegn en rektangel (uden fyldning). |
clearRect() | Fjern de specificerede pixel inden for den givne rektangel. |
Sti
Metode | Beskrivelse |
---|---|
fill() | Fyld den nuværende figur (sti). |
stroke() | Tegner faktisk den definerede sti. |
beginPath() | Start en sti eller nulstil den nuværende sti. |
moveTo() | Flyt stien til en bestemt punkt på canvaset 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å canvaset. |
clip() | Beskær en vilkårlig form og størrelse af område fra den oprindelige canvas. |
quadraticCurveTo() | Opret en andels Bezier-kurve. |
bezierCurveTo() | Opret en tredjedels Bezier-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 tangenter. |
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 figur. |
rotate() | Roter den nuværende figur. |
translate() | Genmapp et bestemt punkt på canvaset til (0,0) positionen. |
transform() | Erstat den nuværende konverteringsmatrix for tegning. |
setTransform() | Nulstil den nuværende konvertering til enhedsmatrix. Derefter kør transform(). |
Tekst
egenskaber | Beskrivelse |
---|---|
font | Indstil eller returner de nuværende skrifttypeegenskaber for tekstindholdet. |
textAlign | Indstil eller returner den nuværende justering af tekstindholdet. |
textBaseline | Indstil eller returner den nuværende tekstbaseligning, der bruges til tegning af tekst. |
Metode | Beskrivelse |
---|---|
fillText() | Tegn 'fyldt' tekst på canvaset. |
strokeText() | Tegn tekst på canvaset (uden fyldning). |
measureText() | Returnerer et objekt, der indeholder den specificerede tekstbredde. |
Billedtegning
Metode | Beskrivelse |
---|---|
drawImage() | Tegn et billede, 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 specificerede ImageData objekt. |
Metode | Beskrivelse |
---|---|
createImageData() | Opret et nyt tomt ImageData objekt. |
getImageData() | Returnerer et ImageData objekt, der kopierer pixeldata fra den specificerede rektangel på canvaset. |
putImageData() | Læg billeddata (fra den specificerede ImageData objekt) tilbage på canvaset. |
Synkronisering
egenskaber | Beskrivelse |
---|---|
globalAlpha | Indstil eller returner den nuværende alpha eller gennemsigtighedsværdi for tegning. |
globalCompositeOperation | Indstil eller returner, hvordan en ny image skal tegnes på eksisterende image. |
Andet
Metode | Beskrivelse |
---|---|
save() | Gemmer den nuværende konteksttilstand. |
restore() | Returnerer den tidligere gemte stiplaceringstilstand og egenskaber. |
createEvent() | |
getContext() | |
toDataURL() |
standard egenskaber og begivenheder
canvas objektet understøtter både standardegenskaberogBegivenheder.
Relaterede sider
HTML undervisning:HTML5 Canvas
HTML billedundervisning:HTML Canvas undervisning
HTML referencer:HTML <canvas> tag
- Forrige side HTML Style
- Næste side API Console