canvas 閉合 canvas 簡版畫板

2021-10-14 11:43:38 字數 1896 閱讀 2879

結合之前的api可以來個簡單的實踐

栗子:結合滑鼠互動效果實現畫板的功能,有寫的功能以及橡皮擦的功能(撤銷、前進就先不考慮了)

首先來個布局:

需要調節線的粗細以及橡皮擦的大小,我們需要h5的範圍表單元素

html

線的粗細:

橡皮檫的大小:

js1、獲取表單元素: 線, 橡皮大小

var linerange = document.getelementbyid('line');

var rubrange = document.getelementbyid('rub');

2、建立canvas並新增至body中

var canvas = document.createelement('canvas');

canvas.width = 500;

canvas.height = 500;

canvas.style.csstext = 'border: 1px solid #ccc';

3、線的尺寸、橡皮尺寸:繫結事件

// 線的尺寸

linerange.addeventlistener('input', changelinewidth);

// 橡皮尺寸

rubrange.addeventlistener('input', changerubsize);

// 橡皮檫的尺寸

function changerubsize()

// 線的粗細

function changelinewidth()

4、 canvas中的事件

var ctx = canvas.getcontext('2d');

// 線的粗細

ctx.linewidth = 4;

// 橡皮檫的尺寸

var rubsize = 1;

// 是否可用寫擦功能

var ispress = false;

// 按鈕型別

var btntype;

4.1 canvas則需要監聽滑鼠按下的事件,說明使用者下筆

canvas.addeventlistener('mousedown', pendown);

// 左鍵為 寫 0

// 中鍵為 橡皮檫 1

// 下筆事件

function pendown(event)

}

4.2 當使用者滑鼠按下,並且此時監聽滑鼠移動的事件,說明使用者此時正在畫布上移動,也就說明使用者正在繪製路徑

canvas.addeventlistener('mousemove', penmove);

// 筆移動事件

function penmove(event)

}}// 寫

function write(x, y)

// 擦:擦的功能則是clearrect, 需要注意的是,橡皮擦的中心需要是游標的中心

function rub(x, y)

4.3 當滑鼠按鍵抬起的時候,說明使用者此時將筆離開畫布了

滑鼠抬起事件觸發,則ispress需要重置為false,閉合路徑

canvas.addeventlistener('mouseup', penup);

// 提筆

function penup()

canvas 閉合 Canvas的絢爛起點

可以理解為,它提供了一塊畫布,在它所掌控的區域,可以運用各種方法繪製圖形 文字,或者製作動畫 處理影象,等等。通常我們能夠看到一些炫酷的動畫,很多都是canvas做出來的,但是需要各種元素和技巧綜合使用,不是一蹴而就的,我們先從基礎看起。var canvas document.getelementb...

canvas 閉合 canvas 線的樣式

線的樣式在canvas中分為輪廓顏色 以及線型的樣式 strokestyle color 設定描邊輪廓的顏色ctx.linecap butt 預設 正常 屬性值 round 多出半圓 square 多出方形 ctx.linewidth 20 ctx.strokestyle red 線帽 線的兩端的樣...

Canvas學習系列一 初識canvas

最近你開始在學習canvas,打算把學習canvas的整個學習過程當中的一些筆記與總結記錄下來,如有什麼不足之處還請大神們多多指出。1.canvas介紹 canvas元素的出現,可以說開啟的web世界繪製動畫,圖形的大門,其功能非常強大 canvas 元素是html5中功能最強大的元素,它的能力主要...