
Elemen <canvas> pada HTML digunakan untuk menggambar grafik pada halaman web.
Gambar grafik diatas dibuat dengan elemen <canvas>. Gambar tersebut menunjukkan empat elemen <canvas> yaitu persegi panjang merah, persegi panjang gradien, persegi panjang multicolor, dan teks multicolor.
Section Artikel
Apa itu HTML Canvas?
Elemen <canvas>pada HTML digunakan untuk menggambar grafik dengan cepat melalui JavaScript.
Elemen tersebut hanya sebuah penampung untuk grafik. Kita harus menggunakan JavaScript untuk benar-benar menggambar sebuah grafik.
Canvas memiliki beberapa metode untuk menggambar path, kotak, lingkaran, teks, dan menambahkan gambar.
Browser Support
Angka-angka dalam tabel menentukan versi browser pertama yang sepenuhnya mendukung elemen
Element | Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|---|
<canvas> | 4.0 | 9.0 | 2.0 | 3.1 | 9.0 |
Contoh penggunaan Canvas
Canvas adalah area persegi panjang pada halaman HTML. Secara default, Canvas tidak memiliki batas dan tidak ada konten.
Markup canvas berbentuk seperti ini:
<canvas id="myCanvas" width="200" height="100"></canvas>
Catatan: Selalu tentukan atribut id (untuk merujuk ke dalam script), atribut width dan height untuk menentukan ukuran kanvas. Lalu untuk menambahkan border, gunakan atribut style.
Berikut adalah contoh dasar Canvas kosong :
<!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;"> Browser Anda tidak mendukung tag canvas HTML. </canvas> </body> </html>
Menambahkan JavaScript
Setelah membuat area canvas berbentuk persegi panjang, selanjutnya tambahkan JavaScript untuk mulai menggambar.
Berikut beberapa contohnya.
Menggambar garis :
<!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Browser Anda tidak mendukung tag canvas HTML..</canvas> <script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); ctx.moveTo(0,0); ctx.lineTo(200,100); ctx.stroke(); </script> </body> </html>
Menggambar lingkaran:
<!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Browser Anda tidak mendukung tag canvas HTML.</canvas> <script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); ctx.beginPath(); ctx.arc(95,50,40,0,2*Math.PI); ctx.stroke(); </script> </body> </html>
Menggambar teks:
<!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Browser Anda tidak mendukung tag canvas HTML.</canvas> <script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); ctx.font = "30px Arial"; ctx.fillText("Hello World",10,50); </script> </body> </html>
Teks Stroke :
<!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Browser Anda tidak mendukung tag canvas HTML.</canvas> <script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); ctx.font = "30px Arial"; ctx.strokeText("Hello World",10,50); </script> </body> </html>
Menggambar Gradien Linear :
<!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Browser Anda tidak mendukung tag canvas HTML.</canvas> <script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); // Create gradient var grd = ctx.createLinearGradient(0,0,200,0); grd.addColorStop(0,"red"); grd.addColorStop(1,"white"); // Fill with gradient ctx.fillStyle = grd; ctx.fillRect(10,10,150,80); </script> </body> </html>
Menggambar Gradien Melingkar :
<!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Browser Anda tidak mendukung tag canvas HTML.</canvas> <script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); // Create gradient var grd = ctx.createRadialGradient(75,50,5,90,60,100); grd.addColorStop(0,"red"); grd.addColorStop(1,"white"); // Fill with gradient ctx.fillStyle = grd; ctx.fillRect(10,10,150,80); </script> </body> </html>
Menggambar Image :
<!DOCTYPE html> <html> <body> <p>Images yang digunakan:</p> <img id="scream" src="https://dosenit.com/wp-content/uploads/2020/10/audi.jpg" width="220" height="277"> <p>Canvas yang di isi:</p> <canvas id="myCanvas" width="250" height="300" style="border:1px solid #d3d3d3;"> Browser Anda tidak mendukung tag canvas HTML.</canvas> <p><button onclick="myCanvas()">Coba!</button></p> <script> function myCanvas() { var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); var img = document.getElementById("scream"); ctx.drawImage(img,10,10); } </script> </body> </html>