@beisen/ethos
Version:
beisencloud pc react components
76 lines (68 loc) • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.computeTargetCenterPosition = computeTargetCenterPosition;
exports.computePositionToMakePopCenter = computePositionToMakePopCenter;
exports.genPopStyleIfPosition = genPopStyleIfPosition;
var MAX_CONFIRM_HEIGHT = exports.MAX_CONFIRM_HEIGHT = 220;
/**
* 计算target的中点位置
* @param {HTMLElement} target
*/
function computeTargetCenterPosition(target) {
var _target$getBoundingCl = target.getBoundingClientRect(),
top = _target$getBoundingCl.top,
left = _target$getBoundingCl.left,
width = _target$getBoundingCl.width,
height = _target$getBoundingCl.height;
return {
top: top + height / 2,
left: left + width / 2
};
}
function computePositionToMakePopCenter(popEl, target) {
var _computeTargetCenterP = computeTargetCenterPosition(target),
top = _computeTargetCenterP.top,
left = _computeTargetCenterP.left;
return {
left: left,
top: top,
marginTop: -popEl.offsetHeight / 2,
marginLeft: -popEl.offsetWidth / 2
};
}
/**
* 设置pop样式,当setPosition为true 时,可以设置位置和偏移
* @param dirClass
* @param maxHeight
* @param isSetPosition
* @param {*} position 位置
* @param {*} translate 偏移量
* @returns {CSSStyleSheet}
*/
function genPopStyleIfPosition(dirClass, maxHeight) {
var isSetPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : { top: '', bottom: '', left: '', right: '' },
top = _ref.top,
bottom = _ref.bottom,
left = _ref.left,
right = _ref.right;
return isSetPosition ? {
"WebkitTransformOrigin": dirClass,
"MozTransformOrigin": dirClass,
"MzTransformOrigin": dirClass,
"OTransformOrigin": dirClass,
"left": left + "px",
"top": top + "px",
'bottom': bottom + 'px',
'right': right + 'px',
"maxHeight": maxHeight // 最大高度为220px, 减去padding15
} : {
"WebkitTransformOrigin": dirClass,
"MozTransformOrigin": dirClass,
"MzTransformOrigin": dirClass,
"OTransformOrigin": dirClass,
"maxHeight": maxHeight
};
}