您的位置:首页 > Web前端 > JavaScript

js实现鼠标滚轮滚动以当前鼠标焦点为中心缩放

2017-02-04 15:14 2641 查看
var posMoniCtx;//画笔
var posMoniCanvas;//画布

var imgX=0,imgY=0,imgScale=1,minScale=1,maxScale=8,
destWidth,destHeight;
var bgImg;

//chrome firefox浏览器兼容  滚轮事件
posMoniCanvas.onmousewheel=posMoniCanvas.onwheel=function(e){

e.wheelDelta=e.wheelDelta?e.wheelDelta:(e.deltaY*(-40));

if(e.wheelDelta>0&&imgScale<maxScale){//放大
imgScale*=2;
imgX=imgX*2-mousePos.x;
imgY=imgY*2-mousePos.y;
drawAllComponent();
}

if(e.wheelDelta<0&&imgScale>minScale){//缩小
imgScale*=0.5;
imgX=imgX*0.5+mousePos.x*0.5;
imgY=imgY*0.5+mousePos.y*0.5;
drawAllComponent();
}
}

function drawAllComponent() {

//清空面板
posMoniCtx.clearRect(0,0,posMoniCanvas.width,posMoniCanvas.height);
//重绘背景图
destWidth=posMoniCanvas.width*imgScale;
destHeight=posMoniCanvas.height*imgScale;
posMoniCtx.drawImage(bgImg,0,0,bgImg.width,bgImg.height,imgX,imgY,destWidth,destHeight);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js canvas 鼠标 缩放 焦点