UNPKG

sketch-json-parse

Version:

sketch-json解析

46 lines (45 loc) 2.29 kB
"use strict"; 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; };