小編最近研究了HTML5一些新的元素屬性,發(fā)現(xiàn)確實(shí)好用,特別是里面的Canvas這個(gè)新的標(biāo)簽元素。那么今天我們就圍繞這個(gè)元素講講有關(guān)于:“如何簡單制作畫板?”這個(gè)問題吧!
官方介紹:Canvas API(畫布)是在HTML5中新增的標(biāo)簽用于在網(wǎng)頁實(shí)時(shí)生成圖像,并且可以操作圖像內(nèi)容,基本上它是一個(gè)可以用JavaScript操作的位圖(bitmap)。以下使用JavaScript結(jié)合Canvas實(shí)現(xiàn)一個(gè)畫板功能
效果演示圖:
代碼部分(直接復(fù)制便可使用):
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title>JavaScript+Canvas實(shí)現(xiàn)自定義畫板</title>
</head>
<body>
<canvas id="canvas" width="600" height="300"></canvas>
<script type="text/javascript">
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
//畫一個(gè)黑色矩形
ctx.fillStyle="black";
ctx.fillRect(0,0,600,300);
//按下標(biāo)記
var onoff = false;
//變量oldx跟oldy代表鼠標(biāo)移動(dòng)前的坐標(biāo)
var oldx = -10;
var oldy = -10;
//設(shè)置顏色
var linecolor = "white";
//設(shè)置線寬
var linw = 4;
//添加鼠標(biāo)移動(dòng)事件
canvas.addEventListener("mousemove",draw,true); //第三個(gè)參數(shù)主要跟捕獲或者冒泡有關(guān)
//添加鼠標(biāo)按下事件
canvas.addEventListener("mousedown",down,false);
//添加鼠標(biāo)彈起事件
canvas.addEventListener("mouseup",up,false);
function down(event){
onoff = true;
oldx = event.pageX-10;
oldy = event.pageY-10;
//console.log(event.pageX+'..............000.............'+event.pageY);
//event.pageX跟event.pageY相對(duì)于整個(gè)頁面鼠標(biāo)的位置 包括溢出的部分(就是滾動(dòng)條)
}
function up(){
onoff = false;
}
function draw(event){
if(onoff == true){
var newx = event.pageX-10;
var newy = event.pageY-10;
ctx.beginPath();//beginPath() 丟棄任何當(dāng)前定義的路徑并且開始一條新的路徑。它把當(dāng)前的點(diǎn)設(shè)置為 (0,0)。
ctx.moveTo(oldx,oldy); //移動(dòng)到點(diǎn)擊時(shí)候的坐標(biāo),以那個(gè)坐標(biāo)為原點(diǎn)
ctx.lineTo(newx,newy); //繪制新的路徑
ctx.strokeStyle=linecolor;
ctx.lineWidth=linw;
ctx.lineCap="round";
ctx.stroke();//stroke() 方法會(huì)實(shí)際地繪制出通過 moveTo() 和 lineTo() 方法定義的路徑。默認(rèn)顏色是黑色。
//將新的鼠標(biāo)位置賦給下一次開始繪制的起始坐標(biāo)
oldx = newx;
oldy = newy;
};
};
</script>
</body>
</html>
那么我們通過這些代碼就可以進(jìn)行對(duì)于:“如何簡單制作畫板?”這個(gè)問題就有了解決的方法!那么更多有關(guān)于html5這方面的內(nèi)容我們都可以在W3Cschool中進(jìn)行學(xué)習(xí)和了解!