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>
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);
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);
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);
Väg
En vanlig metod för att rita på en canvas är:
- Börja en väg - beginPath()
- Flytta till en punkt - moveTo()
- Rita i en väg - lineTo()
- 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();
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