sketch-json-parse
Version:
sketch-json解析
46 lines (45 loc) • 2.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* 处理超出
* @param {*} targetLayer 被比较的图层
* @param {*} currLayer 比较的图层
*/
exports.default = (targetLayer, currLayer) => {
if (!targetLayer || !currLayer) {
return -1;
}
let targetLayerLeft = targetLayer.structure.x, targetLayerRight = targetLayer.structure.x + targetLayer.structure.width, targetLayerTop = targetLayer.structure.y, targetLayerBottom = targetLayer.structure.y + targetLayer.structure.height, currLayerLeft = currLayer.structure.x, currLayerRight = currLayer.structure.x + currLayer.structure.width, currLayerTop = currLayer.structure.y, currLayerBottom = currLayer.structure.y + currLayer.structure.height;
// target的左边超出curr,把超出部分去掉
if (currLayerLeft > targetLayerLeft) {
targetLayer.structure.x = currLayer.structure.x;
targetLayer.structure.width =
targetLayer.structure.width - (currLayerLeft - targetLayerLeft) > 0
? targetLayer.structure.width - (currLayerLeft - targetLayerLeft)
: 0;
}
// target的上边超出curr,把超出部分去掉
if (currLayerTop > targetLayerTop) {
targetLayer.structure.y = currLayer.structure.y;
targetLayer.structure.height =
targetLayer.structure.height - (currLayerTop - targetLayerTop) > 0
? targetLayer.structure.height - (currLayerTop - targetLayerTop)
: 0;
}
// target的下边超出curr,把超出部分去掉
if (currLayerBottom < targetLayerBottom) {
targetLayer.structure.height =
targetLayer.structure.height - (targetLayerBottom - currLayerBottom) > 0
? targetLayer.structure.height - (targetLayerBottom - currLayerBottom)
: 0;
}
// target的右边超出curr,把超出部分去掉
if (currLayerRight < targetLayerRight) {
targetLayer.structure.width =
targetLayer.structure.width - (targetLayerRight - currLayerRight) > 0
? targetLayer.structure.width - (targetLayerRight - currLayerRight)
: 0;
}
// 返回面积
return targetLayer.structure.width * targetLayer.structure.height;
};