Hướng dẫn vẽ hình HTML5 bằng canvas cơ bản

Chuyện mục: » Xây dựng Html/Css

Đăng ngày 12/05/2012 lúc 16:14 bởi | Bình luận: (Chưa có)
     

Chào các bạn, ở các bài trước mình đã giới thiệu cơ bản html5 với chủ đề thiết kế web cơ bản và thiết kế web seo trong tương lai.

Bài viết này mình sẽ chia sẻ một trong những tính năng mới của html5 đó là khả năng vẽ hình bằng mã html, tag canvas cơ bản. Đây cũng sẽ là một xu hướng cho thiết kế web seo làm nền menu, danh mục … vì khi vẽ hình bằng mã html sẽ nhẹ hơn rất nhiều so với hình ảnh .jpg hay .png.

Để hiểu được bài viết này, mời các bạn tham khảo trước bài viết giới thiệu html5

http://seoweb24h.com/thiet-ke-web/kien-thuc-co-ban-html5/

 

Đầu tiên, xin giới thiệu thẻ canvas, thẻ canvas hỗ trợ cho html có thể vẽ hình, nhúng các spript vào tag. Sau đây là một ví dụ, chúng ta sẽ cùng vẽ hình sau đây với kích thước sau: width=500, height=300, mắt trái = vị trí bắt đầu (100,90) kích thước 50×4, mặt phải = vị trí (400,90)

canvas1_html5

Bước 1:

Mở một file html5. Do canvas sẽ nhúng script nên chúng ta mở một đoạn script trên head (trước khi đóng thẻ head).

<script type=“application/x-javascript”>

</script>

Bước 2:

Mở một function trong script với tên “ve” hoặc tên nào đó tùy các bạn nhé.

function ve(){

}

 

Và định cấu hình body load từ script trên.

<body onLoad=”ve();”>

Bước 3:

Mở thẻ canvas trong body, định kích thước cho canvas.

<canvas id=”canvas” width=”500″ height=”300″></canvas>

Và mở canvas trong script bằng đoạn code sau:

var canvas = document.getElementById(‘canvas’);

if (canvas.getContext){

var ctx = canvas.getContext(’2d’)

}

Như vậy là chúng ta đã hoàn tất việc mở thẻ canvas rồi đấy, đương nhiên vẫn chưa thấy gì trên màn hình đâu. Và bây giờ ta sẽ bắt đầu vẽ.

Định màu cho khung nền với mã màu rgb(31,102,246).

ctx.fillStyle = “rgb(31,102,246)”;

ctx.fillRect (0, 0, 500, 300);

Vẽ sharp, các hình trong khung nền: ta mở thẻ beginPath, để cho tiện dụng trong việc thiết kế thì các bạn đóng thẻ bằng closePath luôn nhé. Sau đó, chỉ việc viết các shape giữa 2 thẻ này.

ctx.beginPath();

ctx.closePath();

Tô màu nền cho các sharp:

ctx.fillStyle   = ‘yellow’;

Bắt đầu vẽ con mắt bên trái, điểm xuất phát tại tọa độ (100,90)

ctx.moveTo(100,90);

 

Bây giờ các bạn xem việc thiết kế web giống như học hình học hệ tọa độ X,Y. Từ điểm (100,90) di chuyển đến 3 điểm sau và kết thúc sẽ tạo ra hình vuông cạnh 50px.

ctx.lineTo(150,90);

ctx.lineTo(150,140);

ctx.lineTo(100,140);

canvas2_html5

Thử nhẫm tính xem đúng không nhé. Và kế tiếp vẽ cái miệng, con mắt phải bằng 2 đoạn tương tự này.

ctx.moveTo(220,250);

ctx.lineTo(280,250);

ctx.lineTo(280,255);

ctx.lineTo(220,255);

 

ctx.moveTo(350,90);

ctx.lineTo(400,90);

ctx.lineTo(400,140);

ctx.lineTo(350,140);

Vậy là hoàn tất rồi, các bạn có làm được không. Mình xin copy toàn bộ đoạn code html, các bạn làm không được thì copy y chang để các bạn đối chiếu nh.

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv=”seoweb24h-canvascoban” content=”text/html; charset=utf-8″>

<title>seoweb24h</title>

<script type=”application/x-javascript”>

function ve(){

var canvas = document.getElementById(‘canvas’);

if (canvas.getContext){

var ctx = canvas.getContext(’2d’);

ctx.fillStyle = “rgb(31,102,246)”;

ctx.fillRect (0, 0, 500, 300);

ctx.beginPath();

ctx.fillStyle   = ‘yellow’;

ctx.moveTo(100,90); 

ctx.lineTo(150,90);

ctx.lineTo(150,140);

ctx.lineTo(100,140);

ctx.moveTo(220,250);

ctx.lineTo(280,250);

ctx.lineTo(280,255);

ctx.lineTo(220,255);

ctx.moveTo(350,90);

ctx.lineTo(400,90);

ctx.lineTo(400,140);

ctx.lineTo(350,140);

ctx.closePath();

ctx.fill();  

}

}

</script>

</head>

<body onLoad=”ve();”>

<canvas id=”canvas” width=”500″ height=”300″></canvas>

</body>

</html>

Việc thiết kế web, đặc biệt là thiết kế web seo trong tương lai sẽ tiện lợi hơn nhiều nhờ html5. Trước mắt các bạn thấy tấm hình đơn giản trên được thay thế bằng mã code chỉ vài kb thay vì cả chục kb. Chúc các bạn thiết kế web thật cuốn hút.

Website luôn chia sẻ: seoweb24h.com


Gửi phản hồi

*

Hỗ trợ online Support 1 Support 2
Call (08) 3.854.8267 - 0906.874.393
Chia sẻ cộng đồng

Bình Luận Mới Nhất
Bí quyết Marketing Online
Hai nguyên nhân làm giảm hiệu quả marketing online tại VN
Thanks. Đúng là xu hướng truyền thông và quảng cáo hiện nay chuyển sang online rất nhiều, nó rộng...
>>2013-04-23 lúc 08:48:54
Minh Phuong tiên
Quảng cáo Google Adwords: nhận định xu hướng quảng cáo
minh muon  mua phan me m quang cao tu khoa,giup minh nhe   ...
>>2013-04-11 lúc 09:00:41
Enuol
Thiết kế giao diện web với Photoshop CS5
mình đang tập tành làm web có ai đã code html & css bài này chưa cho mình tham khảo với... cả...
>>2013-04-05 lúc 07:42:25
phong
Xu hướng quảng cáo Google adwords 2013
Anh ơi, Trông tấm hình có vẻ là pro về google adwords nhưng mà xem không hiểu gì,...
>>2013-03-18 lúc 01:58:36
tinkinhdoanh
Hướng dẫn làm forum vbb cơ bản
Gía như bạn hướng dẫn bằng hình ảnh thì tốt lắm, chứ mình mày mò nửa chugnf mà ko hiểu và ko làm ...
>>2013-03-07 lúc 04:46:16
tinkinhdoanh
Hướng dẫn làm forum vbb cơ bản
MInh đang cần, thực hành ngay thôi, cảm ơn nhe ...
>>2013-03-01 lúc 16:05:46
tinkinhdoanh
Hướng dẫn làm forum vbb cơ bản
mình định sẽ làm một trang diễn đàn, bạn nào biết chỉ mình với. email: vuongtieugiang@gmail.com ...
>>2013-02-16 lúc 03:28:59
TVC 30s Seoweb24h