1. 程式人生 > >Canvas實現拖拽放大鏡

Canvas實現拖拽放大鏡

<!DOCTYPE html>

<html>

<head lang="en“>

<title></title>

<canvas  id="canvas" style="display:block;margin:0;auto:border:1px; solid #aaa;" >

</canvas>

<input  type="range" id="scale-range" min="0.5" max="3.0: value="1.0" style="display:block;margin:20px;width:800px>

<script  type="text /javascript">

 var canvas=document.getElementById("canvas");

var context=canvas.getContext("2d");

var  slider=document.getElementById("range");

var scale=slider.value();

canvas.width=1080;

canvas.height=600;l

var image=new Image();

image.src=""bg.jpg;

image.onload=function(){

context.drawImage(image,0,0,canvas.width,canvas.height);

slider.onmousemove=function(){

 scale=slider.value;

drawImageByScale(scale)

context.drawImage(image,0,0,canvas.width,canvas.height);

}

function  drawImageByScale(scale){

var imageWidth=1080*scale;

var imageHeight=canvas.height*scale;

var  x=canvas.width/2-imagewIdth/2;

var y=canvas.height/2-imageHeight/2;

context.clearRect(0,0,canvas.width,canvas.height);

context.drawImage(image,x,y,imageWidth,imgeHeight);

}

<!-- 

1設定canvase的高寬

2載入圖片到canvas物件上

3繫結拖拽時間

mousedows\mousemove\moseup\moueout

獲取另外一張圖片指定的部分徒刑,獲取會在到當前的canvas畫布上

4放大

繪製放大鏡,獲取另外一張圖片指定的部分圖形。

-->

}

</script>

<script type="text/javaxcrpt">

windows.onload=function(){

var canvas=docment.getElementById("canvas");

var  context=canvas.getContext("2d");

canvas.width=1088;

canvas.height=620;

var image=new Image();

image.src="bg.jpg";

var isMouse

image.onload=function(){

offCanvas.width=image.height;

scale=offCanvas.width/canvas.width;

context.drawImage(image,0,0,canvas.width,canvas.height);

offContext.drawImage(iamge,0,0,offCanvas.width,offCanvas.height);

if(isMouseDown){

 point=windowToCanvas(e.clientX,e.clientY);

}

function  windowsToCanvas(x, y){\

 var bbox=canvas.getBoundingClietnRect();

return {x:x-bbox.left,y:y-bbox.top};

}

}

 function  drawCanvasWidthManifier(isShow ,point ){

if(isShow){\

  drawMangifier(point);

}

}

function drawMngifier(point){

 var mr=200;

 var  imageFlg_cx=point.x*scale;

var imageFlg_cy=point.y*scale;

var sx=imageLg_cx-mr;

var  dx=point.x-mr;

var dy=point.y-mr;

context.save();

context.lineWidth=5;

context.strokeStyle="fff";

context.beginPath();

context.arc();

context.arc(point.x,point.y,mr,0,Math.PI*2,false);

cont.stroke();

context.clip();

context.drawImage(offCanvas,sx,sy,2*mr,2*mr,dx,dy,2*mr,2*mr);\

}

canvas.onmousedown=function(){

e.preventDefault();

isMouseDown=true;

drawCanvasWidthManifier(false);

}

}

var canvas=docment.getElementById("canvas");

var  context=canvas.getContext("2d");

console.log(canvas);

</script>

</html>