HTML Canvas คืออะไร?
<canvas> ใช้ในการวาดกราฟิกได้ทันทีผ่าน JavaScript
<canvas> เป็นเพียงภาชนะสำหรับกราฟิก คุณต้องใช้ JavaScript เพื่อวาดกราฟิกจริงๆ ซึ่ง Canvas มีหลายวิธีในการวาดเส้นทาง กล่อง วงกลม ข้อความ และการเพิ่มรูปภาพ
เบราว์เซอร์ที่สนับสนุน
ตัวเลขในตารางระบุเบราว์เซอร์เวอร์ชันแรกที่รองรับ <canvas> ทั้งหมด
Element | Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|---|
<canvas> | 4.0 | 9.0 | 2.0 | 3.1 | 9.0 |
ตัวอย่าง Canvas
ผืนผ้าใบ (Canvas) เป็นพื้นที่สี่เหลี่ยมบนหน้า HTML ตามค่าเริ่มต้น ผืนผ้าใบไม่มีเส้นขอบและไม่มีเนื้อหา
Markup มีลักษณะดังนี้:
<canvas id="myCanvas" width="200" height="100"></canvas>
หมายเหตุ: ระบุ id Attribute (ที่จะอ้างถึงในสคริปต์) เสมอและ Attribute width และ height เพื่อกำหนดขนาดของผืนผ้าใบ
หากต้องการเพิ่มเส้นขอบ ให้ใช้ Attribute style
ต่อไปนี้เป็นตัวอย่างของผืนผ้าใบเปล่าพื้นฐาน:
ตัวอย่าง
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;"></canvas>
</body>
</html>
เพิ่ม JavaScript
หลังจากสร้างพื้นที่ผ้าใบสี่เหลี่ยมแล้ว คุณต้องเพิ่ม JavaScript เพื่อทำการวาด
นี่คือตัวอย่างบางส่วน:
ตัวอย่างขีดเส้น
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"></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>
ตัวอย่างวาดวงกลม
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"></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>
ตัวอย่างวาดข้อความ
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"></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>
ตัวอย่าง Stroke Text
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"></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>
ตัวอย่างวาด Linear Gradient
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"></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>
ตัวอย่างวาด Circular Gradient
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"></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>
ตัวอย่างวาดภาพ
<!DOCTYPE html>
<html>
<body>
<p>Image to use:</p>
<img id="scream" src="img_the_scream.jpg" alt="The Scream" width="220" height="277">
<p>Canvas to fill:</p>
<canvas id="myCanvas" width="250" height="300" style="border:1px solid #d3d3d3;"></canvas>
<p><button onclick="myCanvas()">Try it</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>