&& parseInt($(‘.crop-background’, this.wrapper).css(‘top’)) + tempZoomLevel * context.img.height > context.settings.cropFrameRect.top + context.settings.height
) {
context.settings.zoomLevel = tempZoomLevel;
context.zoom(context.img.width * context.settings.zoomLevel, context.img.height * context.settings.zoomLevel);
cancelZoomScroll = false;
context.fireCallback(context.settings.callbacks.zoomed);
}
else {
cancelZoomScroll = true;
}
},
stop: function(event, ui) {
//如果缩放级别无效 则重置滚动条的值
if (cancelZoomScroll) {
$(‘.zoom-scroller’, this.wrapper).css(‘left’, context.settings.zoomLevel * 200 / (context.settings.zoom.max – context.settings.zoom.min) + ‘px’);
}
}
});
},
reset: function() {
this.img = new Image();
this.img.src = this.settings.imagePath;
//截取框大于工作区,则放大工作区
var tempSize = {
width: Math.max(this.settings.cropWorkAreaSize.width, this.settings.width),
height: Math.max(this.settings.cropWorkAreaSize.height, this.settings.height)
};
//如果截取框在工作区中居中,则重新设置截取框的位置
if (this.settings.cropFrameRect.center) {
this.settings.cropFrameRect.left = (tempSize.width – this.settings.width) / 2;
this.settings.cropFrameRect.top = (tempSize.height – this.settings.height) / 2;
}
//如果截取框在图片中居中,则重新设置图片与截取框的相对位置
if (this.settings.center) {
this.settings.left = (this.img.width * this.settings.zoomLevel – this.settings.width) / 2;
this.settings.top = (this.img.height * this.settings.zoomLevel – this.settings.height) / 2;
}
this.wrapper.width(tempSize.width + 2).height(tempSize.height + 25);
$(‘.foreground-img,.background-img’, this.wrapper).attr(‘src’, this.settings.imagePath);
$(‘.crop-work-area’, this.wrapper).width(tempSize.width).height(tempSize.height);
$(‘.crop-frame’, this.wrapper).css({
left: this.settings.cropFrameRect.left + ‘px’,
top: this.settings.cropFrameRect.top + ‘px’,
width: this.settings.width + ‘px’,
height: this.settings.height + ‘px’
});
$(‘.foreground-img’, this.wrapper).css({
left: (-this.settings.cropFrameRect.left – 1) + ‘px’,
top: (-this.settings.cropFrameRect.top – 1) + ‘px’
});
$(‘.zoom-scroller’, this.wrapper).css(‘left’, this.settings.zoomLevel * 200 / (this.settings.zoom.max – this.settings.zoom.min) + ‘px’);
$(‘.crop-background’, this.wrapper).css({
opacity: 0.3,
left: this.settings.cropFrameRect.left – this.settings.left + ‘px’,
top: this.settings.cropFrameRect.top – this.settings.top + ‘px’
});
$(‘.foreground-img’, this.wrapper).css({










