JS图片画方块定位坐标
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <canvas id="canvas" width="600" height="300" style="border: 1px solid #000;"></canvas> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jcanvas/21.0.1/min/jcanvas.min.js"></script> <script> var layer=0; CanvasExt = { drawRect:function(canvasId,penColor,strokeWidth){ var that=this; that.penColor=penColor; that.penWidth=strokeWidth; var canvas=document.getElementById(canvasId); //canvas 的矩形框 var canvasRect = canvas.getBoundingClientRect(); //矩形框的左上角坐标 var canvasLeft=canvasRect.left; var canvasTop=canvasRect.top; var layerIndex=layer; var layerName="layer"; var x=0; var y=0; console.log(layer) //鼠标点击按下事件,画图准备 canvas.onmousedown=function(e){ //设置画笔颜色和宽度 var color=that.penColor; var penWidth=that.penWidth; layerIndex++; layer++; layerName+=layerIndex; x = e.clientX-canvasLeft; y = e.clientY-canvasTop; addLayerS(canvasId,color,penWidth,layerName,x,y,1,1); $("#"+canvasId).drawLayers(); $("#"+canvasId).saveCanvas(); //鼠标移动事件,画图 canvas.onmousemove=function(e){ width = e.clientX-canvasLeft-x; height = e.clientY-canvasTop-y; $("#"+canvasId).removeLayer(layerName); addLayerS(canvasId,color,penWidth,layerName,x,y,width,height); $("#"+canvasId).drawLayers(); } }; canvas.onmouseup=function(e){ var color=that.penColor; var penWidth=that.penWidth; canvas.onmousemove=null; width = e.clientX-canvasLeft-x; height = e.clientY-canvasTop-y; $("#"+canvasId).removeLayer(layerName); addLayerS(canvasId,color,penWidth,layerName,x,y,width,height); $("#"+canvasId).drawLayers(); $("#"+canvasId).saveCanvas(); saveCanvas(x,y,width,height) } } }; function addLayerS(canvasId,color,penWidth,layerName,x,y,width,height){ $("#"+canvasId).addLayer({ type: 'rectangle', strokeStyle: color, strokeWidth: penWidth, name:layerName, fromCenter: false, x: x, y: y, width: width, height: height }); console.log(canvasId,color,penWidth,layerName,x,y,width,height) } function saveCanvas(x,y,width,height){ console.log(x,y,width,height) var offset = localStorage.offset; if(offset){ offset = JSON.parse(offset); }else{ offset = []; } console.log(offset) offset.push({x:x,y:y,width:width,height:height}) localStorage.offset = JSON.stringify(offset) } drawPen(); function drawPen(){ var color = "red"; var width = 1; var offset = localStorage.offset ; if(offset){ offset = JSON.parse(offset); layer = offset.length; CanvasExt.drawRect("canvas",color,width); $.each(offset,function(k,v){ $("#canvas").removeLayer('layer'+k); addLayerS('canvas','red',1,'layer'+k, v.x, v.y, v.width, v.height) $("#canvas").drawLayers(); $("#canvas").saveCanvas(); }) }else{ CanvasExt.drawRect("canvas",color,width); } } </script> </body> </html>