您的位置:首页 > 其它

canvas 图片鼠标区域放大细节

2016-04-22 18:53 253 查看
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>图片鼠标区域放大细节</title>
</head>
<style>
body{background: #666;margin: 0;padding: 0; }
input{
display: block;
margin: 20px auto;
}

</style>
<body>
<canvas id="kycanvas" style="display: block;margin:0 auto; border: 1px solid darksalmon;margin-top: 100px;">
当前浏览器不支持canvas,请更换浏览器后再试!
</canvas>
<canvas id="offCanvas" style="display: none;"></canvas>
</body>
<script>
var canvas = document.getElementById("kycanvas");//选取画布
var context = canvas.getContext("2d");//创建context对象

var offCanvas = document.getElementById("offCanvas");//选取画布
var offContext = offCanvas.getContext("2d");//创建context对象
var scale;
var image = new Image();
var isMouseDown = false;
window.onload = function (){
canvas.width = 400;//画布宽
canvas.height = 400; //画布高
image.src = "images/im1.jpg";//图片地址
image.onload = function(){ //图片加载完毕
offCanvas.width = image.width;
offCanvas.height = image.height;
scale = offCanvas.width / canvas.width;
context.drawImage(image,0,0,canvas.width,canvas.height);
offContext.drawImage(image,0,0);
};
};
function windowToC
4000
anvas(x,y){//获取画布上坐标点
var bbox = canvas.getBoundingClientRect();
return { x : x - bbox.left , y : y - bbox.top };
};
canvas.onmousedown = function (e){
e.preventDefault(); //去默认事件
var point = windowToCanvas(e.clientX , e.clientY);
console.log(point.x , point.y);
isMouseDown = true;
drawCanvasWithMagnifier(true , point)
};
canvas.onmousemove = function (e){
e.preventDefault(); //去默认事件
if(isMouseDown == true){
var point = windowToCanvas(e.clientX , e.clientY);
console.log(point.x , point.y);
drawCanvasWithMagnifier(true , point)
}
};
canvas.onmouseup = function (e){
e.preventDefault(); //去默认事件
isMouseDown = false;
drawCanvasWithMagnifier(false);
};
canvas.onmouseout = function (e){
e.preventDefault(); //去默认事件
isMouseDown = false;
drawCanvasWithMagnifier(false);
};
function drawCanvasWithMagnifier(isShowMagnifier , point){
context.clearRect(0,0,canvas.width,canvas.height);
context.drawImage(image,0,0,canvas.width,canvas.height);
if(isShowMagnifier == true){
drawMagnifier(point);
}
}
function drawMagnifier(point){
var imageLG_cx = point.x * scale;
var imageLG_cy = point.y * scale;
var mr = 100;
var sx = imageLG_cx - mr;
var sy = imageLG_cy - mr;

var dx = point.x - mr;
var dy = point.y - mr;

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

}
</script>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: