复制问题:
我正在使用KonvaJS实现缩放/平移功能。无论是缩放图像还是缩小图像,平移都处于活动状态;平移图像时,它会拖离画布边框。
您可以通过此处实现的内容来体验我所描述的内容: My-CodePen-Sample
$('#zoomIn').on('click',function (e) {
e.preventDefault();
imgObj.draggable = true;
var oldScale = stage.scaleX();
var mousePointTo = {
x: stage.width() / 2 / oldScale - stage.x() / oldScale,y: stage.height() / 2 / oldScale - stage.y() / oldScale
};
var newScale = oldScale * scaleBy;
stage.scale({ x: newScale,y: newScale });
var newPos = {
x:
-(mousePointTo.x - stage.width() / 2 / newScale) *
newScale,y:
-(mousePointTo.y - stage.height() / 2 / newScale) *
newScale
};
stage.position(newPos);
stage.batchDraw();
})
我的需求已解决:
但是,我仅需要在缩放图像时才需要激活平移功能,并且在平移画布时图像边界也仅限于画布。
您可以在这里体验我要求KonvaJS应用的内容: PinchZoomer