Canvas API
- Föregående sida HTML Style
- Nästa sida API Console
<canvas>-elementet definierar en bitmap-områ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-elementet i HTML-sidan på vilket som helst ställe med <canvas>-tagget:
Exempel
<canvas id="myCanvas" width="300" height="150"></canvas>
Hur man komma å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-ritkontextobjekt:
const ctx = myCanvas.getContext("2d");
Anteckningar
HTML <canvas>-elementet har inga ritfunktioner.
Du måste använda JavaScript för att rita alla图形.
getContext()-metoden returnerar ett objekt med ritverktyg (metoder).
Rita på canvas
Efter att ha skapat 2D-ritkontexten kan du rita på canvas.
Nedan har fillRect()-metoden ritat en svart rektangel, med övre vänstra hörnet vid position 20,20. Rektangelns bredd är 150 pixlar, höjden 100 pixlar:
Exempel
const myCanvas = document.getElementById("myCanvas"); const ctx = myCanvas.getContext("2d"); ctx.fillRect(20, 20, 150, 100);
Använd färg
fillStyle-attributet ställer in färgen för fyllningen av 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() för att skapa ett nytt <canvas>-element och lägga till det 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å canvas är:
- Börja med en bana - beginPath()
- Flytta till en punkt - moveTo()
- Rita i banan - lineTo()
- Rita en bana - 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 skuggor
egenskaper | Beskrivning |
---|---|
fillStyle | Ställ in eller returnera färgen, gradienten eller mönstret för fyllning. |
strokeStyle | Ställ in eller returnera färgen, gradienten eller mönstret för sträckor. |
shadowColor | Ställ in eller returnera färgen för skuggor. |
shadowBlur | Ställ in eller returnera suddighetens nivå för skuggor. |
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. |
Metoder | Beskrivning |
---|---|
createLinearGradient() | Skapa en linjär gradient (används för canvasinnehåll). |
createPattern() | Upprepa det specificerade elementet i den specificerade riktningen. |
createRadialGradient() | Skapa en radial/cirkulär gradient (används för canvasinnehåll). |
addColorStop() | Bestäm färgen och stoppläget i en gradientobjekt. |
Linjestil
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 nuvarande linjethicken. |
miterLimit | Ställ in eller returnera den maximala skrålängden. |
Rektangel
Metoder | Beskrivning |
---|---|
rect() | Skapa en rektangel. |
fillRect() | Rita en 'fylld' rektangel. |
strokeRect() | Rita en rektangel (ingen fyllning). |
clearRect() | Rensa de specificerade pixeln inom den givna rektangeln. |
Väg
Metoder | Beskrivning |
---|---|
fill() | Fyll den nuvarande grafiken (vägen). |
stroke() | Tillämpa faktiskt den definierade vägen. |
beginPath() | Börja vägen eller återställ den nuvarande vägen. |
moveTo() | Flytta vägen till den specificerade punkten på canvasen utan att skapa en linje. |
closePath() | Skapa en väg från den nuvarande punkten till startpunkten. |
lineTo() | Lägg till en ny punkt och skapa en linje från den punkten till den sista specificerade punkten på canvasen. |
clip() | Skär av en valfri form och storlek från den ursprungliga canvasen. |
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å tangentlinjer. |
isPointInPath() | Returnerar true om den angivna punkten finns i den nuvarande vägen, annars returnerar false. |
Transformation
Metoder | Beskrivning |
---|---|
scale() | Förstora eller förminska den nuvarande grafiken. |
rotate() | Rotera den nuvarande grafiken. |
translate() | Återmapping av (0,0) positionen på canvasen. |
transform() | Ersätt den nuvarande transformationen för ritningen. |
setTransform() | Återställ den nuvarande transformationen till en enhetsmatris. Kör sedan transform(). |
Text
egenskaper | Beskrivning |
---|---|
font | Ställ in eller returnera den nuvarande teckengraden för textinnehåll. |
textAlign | Ställ in eller returnera den nuvarande justeringsmetoden för textinnehåll. |
textBaseline | Ställer in eller returnerar den aktuella textbaslinjen som används för att rita texten. |
Metoder | 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
Metoder | Beskrivning |
---|---|
drawImage() | Rita bilder, canvas eller video på canvasen. |
Pixelhantering
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. |
Metoder | 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 det specificerade ImageData-objektet) på canvasen. |
Komposition
egenskaper | Beskrivning |
---|---|
globalAlpha | Ställer in eller returnerar den aktuella alfanivå eller transparensen för ritning. |
globalCompositeOperation | Ställer in eller returnerar hur en ny bild ska ritas på den befintliga bilden. |
Andra
Metoder | Beskrivning |
---|---|
save() | Sparar den aktuella kontextens status. |
restore() | Återställer tidigare sparad bane- och egenskapsstatus. |
createEvent() | |
getContext() | |
toDataURL() |
standardegenskaper och händelser
canvas-objektet stöder både standardegenskaperochHändelser.
Relaterade sidor
HTML Handledning:HTML5 Canvas
HTML Bildhandledning:HTML CanvasHandledning
HTML Referenshandbok:HTML <canvas> tag
- Föregående sida HTML Style
- Nästa sida API Console