JavaScript+Canvas實(shí)現(xiàn)自定義畫板的示例代碼
發(fā)布時(shí)間:2019-05-13 15:09:33 作者:代碼西施
我要評(píng)論

這篇文章主要介紹了JavaScript+Canvas實(shí)現(xiàn)自定義畫板的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
最近研究了HTML5一些新的元素屬性,發(fā)現(xiàn)確實(shí)好用,特別是里面的Canvas這個(gè)新的標(biāo)簽元素。官方介紹:Canvas API(畫布)是在HTML5中新增的標(biāo)簽用于在網(wǎng)頁(yè)實(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è)頁(yè)面鼠標(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èi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
- 幾何畫板怎么利用弧繪制三角形折疊?幾何畫板中想要繪制一個(gè)在四邊形邊上折疊起來(lái)的三角形,該怎么制作這個(gè)效果呢?下面我們就來(lái)看看詳細(xì)的教程,需要的朋友可以參考下2019-05-09
- 幾何畫板怎么制作旋轉(zhuǎn)的正六邊形課件?幾何畫板中想要制作一個(gè)課件,讓正六邊形旋轉(zhuǎn)起來(lái),該怎么實(shí)現(xiàn)呢?下面我們就來(lái)看看詳細(xì)的教程,需要的朋友可以參考下2019-05-07
- 幾何畫板怎么一只飛舞的蝴蝶動(dòng)畫?幾何畫板中想要制作一只蝴蝶飛舞的動(dòng)畫效果,該怎么制作這個(gè)動(dòng)畫效果呢?下面我們就來(lái)看看詳細(xì)的教程,需要的朋友可以參考下2019-04-23
手把手教你實(shí)現(xiàn)一個(gè)canvas智繪畫板的方法
這篇文章主要介紹了手把手教你實(shí)現(xiàn)一個(gè)canvas智繪畫板的方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面2019-03-04ai怎么設(shè)置畫板屬性? ai畫板設(shè)置屬性的教程
ai怎么設(shè)置畫板屬性?ai中想要對(duì)畫板進(jìn)行設(shè)置,該怎么設(shè)置畫板屬性呢?下面我們就來(lái)看看ai畫板設(shè)置屬性的教程,需要的朋友可以參考下2019-02-27- 金排物理畫板2019是一款基于微軟Word、方便物理教師制做試題教案課件等的軟件,使用本軟件您可以將圖形圖片等添加到WORD工具欄、菜單欄、金排素材庫(kù)等,打造自己的模板輕而2019-02-25
socket.io 和canvas 實(shí)現(xiàn)的共享畫板功能
這篇文章主要介紹了socket.io 和canvas 實(shí)現(xiàn)的共享畫板功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-22