天天看點

JavaScript 之 canvas(一)

原文位址:https://www.jeremyjone.com/462/ , 轉載請注明。

代碼位址:https://github.com/jeremyjone/CanvasPaint ,需要請自行檢視。

認識canvas

<canvas>

是一個HTML元素,可用于通過腳本(通常是JavaScript)繪制圖形。

更多介紹,可以參考MDN的文檔。

這個系列我希望寫一個簡單的畫圖功能,并不是很困難,但是基本功能都會有接觸。先來看一下成品:

JavaScript 之 canvas(一)

可以看到,涵蓋了普通形狀,箭頭形狀,橡皮,以及文字,就是一個簡單而又不失功能的畫闆。

那麼開始學習canvas吧。

一個簡單的canvas頁面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JS - Canvas - Base</title>
</head>
<body>
    <canvas id="canvas" width="800" height="600" style="background-color: #fff">抱歉,您的浏覽器不支援canvas元素</canvas>
</body>
</html>
           

<body>

中建立一個

<canvas>

的元素,也就是我們的canvas控件,這樣就完成了建立。如果浏覽器不支援canvas控件,那麼會顯示中間的文字。

這時頁面上已經有控件了,但是我們什麼都看不到,因為他本身并沒有什麼顔色。。。我們可以通過添加JS方法來繪圖。

嘗試添加如下代碼:

var canvas = document.getElementById("canvas");

// 檢測浏覽器是否支援canvas 該方法是否存在 取得上下文對象
if (canvas.getContext) {
    var context = canvas.getContext("2d"); //2d用引用括起來
    if (canvas.getContext) {
        // 設定陰影,陰影需要在圖形之前設定
        context.shadowOffsetX = 10;
        context.shadowOffsetY = 20;
        context.shadowBlur = 2;
        context.shadowColor = "yellow";

        context.fillStyle = "red"; // 填充顔色為紅色
        context.fillRect(10, 10, 150, 150);	//用指定的顔色填充矩形

        context.strokeStyle = "blue"; //描邊顔色為藍色
        context.lineWidth = 4; //指定描邊線的寬度
        context.strokeRect(10, 10, 150, 150);	//用指定的顔色描邊矩形
    }
}
           

打開頁面,會發現已經有東西了:

JavaScript 之 canvas(一)

可以看到,現在已經出現了畫面。

這就是canvas的最基本用法。這裡介紹了填充色,填充方法,描邊色,描邊方法,以及陰影的使用方法。不過最基本的,這一切都以

var context = canvas.getContext("2d");

為基礎,這個

context

可以了解為一個畫筆,我們所有的繪制都是用它來完成。

有了這樣的基礎,我們就可以開始進行真正的繪制了。

在下一篇中,将會介紹基本圖形的繪制。

繼續閱讀