@ohu-mobile/core
Version:
62 lines (61 loc) • 1.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.computeRect = computeRect;
exports.getAnchorPosition = getAnchorPosition;
exports.getTransformOrigin = getTransformOrigin;
exports.isAnchorPosition = isAnchorPosition;
exports.isAnyPosition = isAnyPosition;
function isAnyPosition(position) {
return position.left !== undefined || position.top !== undefined;
}
function isAnchorPosition(position) {
return position.horizontal !== undefined || position.vertical !== undefined;
}
function computeRect(el) {
return {
width: el.offsetWidth,
height: el.offsetHeight
};
}
function getAnchorPosition(position) {
var anchorPos = {};
if (typeof position === 'string') {
if (position === 'top' || position === 'bottom') {
anchorPos.vertical = position;
anchorPos.horizontal = 'center';
} else {
anchorPos.horizontal = position;
anchorPos.vertical = 'center';
}
} else if (isAnchorPosition(position)) {
anchorPos = position;
}
return anchorPos;
}
var vPositionReverseMap = {
top: 'bottom',
bottom: 'top',
center: 'center'
};
var hPositionReserveMap = {
left: 'right',
right: 'left',
center: 'center'
};
function getTransformOrigin(anchorPos, origin) {
var transformOrigin = origin || {};
// preset transform origin
if (anchorPos.vertical !== undefined && !transformOrigin.vertical) {
transformOrigin.vertical = vPositionReverseMap[anchorPos.vertical];
}
if (anchorPos.horizontal !== undefined && !transformOrigin.horizontal) {
if (transformOrigin.vertical !== 'center') {
transformOrigin.horizontal = anchorPos.horizontal;
} else {
transformOrigin.horizontal = hPositionReserveMap[anchorPos.horizontal];
}
}
return transformOrigin;
}