UNPKG

@beisen/ethos

Version:

beisencloud pc react components

76 lines (68 loc) 2.36 kB
'use strict'; 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 }; }