最近研究了HTML5一些新的元素屬性,發現確實好用,特別是裡面的Canvas這個新的標籤元素。官方介紹:Canvas API(畫布)是在HTML5中新增的標籤用於在網頁即時生成圖像,並且可以操作圖像內容,基本上它是一個可以用JavaScript操作的點陣圖(bitmap)。以下使用JavaScript結合Canvas實作一個畫板功能
效果示範圖:
程式碼部分(直接複製便可使用)
<!DOCTYPE HTML><html><head> <meta charset=utf-8 /> <title>JavaScript+Canvas實作自訂畫板</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); //畫一個黑色矩形ctx.fillStyle=black; ctx.fillRect(0,0,600,300); //按下標記var onoff = false; //變數oldx跟oldy代表滑鼠移動前的座標var oldx = -10; var oldy = -10; //設定顏色var linecolor = white; //設定線寬var linw = 4; //新增滑鼠移動事件canvas.addEventListener(mousemove,draw,true); //第三個參數主要跟捕獲或冒泡有關//新增滑鼠按下事件canvas.addEventListener(mousedown,down,false); //新增滑鼠彈起事件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相對於整個頁面滑鼠的位置包含溢出的部分(就是捲軸) } function up(){ onoff = false; } function draw(event){ if(onoff == true) { var newx = event.pageX-10; var newy = event.pageY-10; ctx.beginPath();//beginPath() 丟棄任何目前定義的路徑並且開始一條新的路徑。它把目前的點設定為(0,0)。 ctx.moveTo(oldx,oldy); //移動到點擊時候的座標,以那個座標為原點ctx.lineTo(newx,newy); //繪製新的路徑ctx.strokeStyle=linecolor; ctx.lineWidth=linw; ctx.lineCap=round; ctx.stroke();//stroke() 方法會實際地繪製出透過moveTo() 和lineTo()方法定義的路徑。預設顏色是黑色。 //將新的滑鼠位置賦給下次開始繪製的起始座標oldx = newx; oldy = newy; }; };</script></body></html>以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。