日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

HTML5 Canvas白板

發布時間:2025/7/14 HTML 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTML5 Canvas白板 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

看了很多的白板例子,都沒有與保存相關的例子,而我的思路是使用數組來記錄鼠標繪畫時的軌跡坐標,在對數組進行操作,具體怎么把數組中的數據保存到數據庫大家各顯神通,我就不多說了?,F在唯一擔心的是這個數組能保存多少數據呢?據我測試當數組在2萬個值內還是沒什么影響的,之后就不好說····? ·· 先看下面小樣,之后在改進吧。


<!DOCTYPE HTML> <html> <head> <title>Title</title> <style type="text/css">body{position: absolute;margin:0px;left:0px;top:0px;} </style> <script type="text/javascript"> var ctx; var mycanvas; var dtx; var xy = new Array(); //用來保存鼠標軌跡坐標 //var tts; var x ; //鼠標X坐標 var y ;//鼠標Y坐標window.οnlοad=function(){ dtx = document.getElementById("drawCanvas").getContext("2d"); mycanvas = document.getElementById("myCanvas"); ctx = mycanvas.getContext("2d"); ctx.lineWidth = 1; //線寬 dtx.lineWidth = 1; //ctx.lineCap = "round"; //線頭樣式 //tts = document.getElementById("tts"); //方便調試 mycanvas.onmousedown = startmove; //監聽mycanvas的鼠標按下事件 document.documentElement.onmouseup = stopmove; //監聽鼠標移動事件 }//繪畫函數 function drowPad(e) {ctx.save();ctx.beginPath();ctx.moveTo(x,y);ctx.lineTo(e.clientX-2,e.clientY-2); //cilentX獲得的坐標是相對文檔的坐標,我設置了mycanvas的邊框為2像素,所以要減去2ctx.stroke();x = e.clientX-2;y = e.clientY-2;ctx.restore();xy.push([x,y]);//把坐標添加到數組//tts.innerHTML = x+","+y; }//開始繪制的入口 function startmove(e) {x = e.clientX-2; //獲得鼠標按下的第一點的坐標y = e.clientY-2;xy.push([x,y]);//添加到數組mycanvas.onmousemove = drowPad;//監聽mycanvas的鼠標移動事件}//鼠標按鍵被放開時執行 function stopmove(e) {mycanvas.onmousemove = null; //取消mycanvas鼠標移動監聽事件xy.push([0.1,0]);//把特定的值增加到數組,用于標記此次繪畫結束,恢復繪畫時用到 }//根據數組記錄的鼠標軌跡重新恢復畫出的圖形 function drowDTX() { dtx.clearRect(0,0,400,300); //先清空mycanvas,避免累計繪制產生重疊dtx.save();for(var a = 0; a < xy.length; a++){if(xy[a+1][0] == 0.1) //根據數組特定標記判斷是否是此次繪畫的結束點{a+=2;continue;}if(xy[a][0] == 0.1) //根據數組特定標記判斷是否是此次繪畫的結束點{a++;continue;}dtx.beginPath();dtx.moveTo(xy[a][0],xy[a][1]);dtx.lineTo(xy[a+1][0],xy[a+1][1]);dtx.stroke();}dtx.restore(); //tts.innerHTML = xy.length; }</script> </head> <body onselectstart = "return false;"> <canvas style="border: 2px solid #000000" id="myCanvas" width="400" height="300">瀏覽器不支持canvas標簽</canvas> <canvas style="border: 2px solid #000000" id="drawCanvas" width="400" height="300">瀏覽器不支持canvas標簽</canvas><p id="tts"></p> <input type="button" value="重畫" onclick="drowDTX()"> </body> </html>

轉載于:https://www.cnblogs.com/x-man/archive/2012/01/06/2314922.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的HTML5 Canvas白板的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。