最近在做项目的时候,遇到了裁剪框不超出图片的需求,只能自己设法去完成了。代码如下:
/**
* 计算新位置的函数
* @param {Object} scope -- cropper对象
*/
calData(scope){
const cropBoxData = $(scope).cropper('getCropBoxData');
const container = $('.cropper-container')[0].getBoundingClientRect(); // 容器
const image = $('.cropper-canvas')[0].getBoundingClientRect(); // 图片
const box = $('.cropper-crop-box')[0].getBoundingClientRect(); // 裁剪框
const rightXLeft = image.left - container.left;
const rightXRight = image.left - container.left + (image.width - box.width);
const rightYTop = image.top - container.top;
const rightYBottom = image.top - container.top + (image.height - box.height);
let x = undefined;
let y = undefined;
let stop = false;
if(box.