tdesign-vue-next
Version:
TDesign Component for vue-next
55 lines (49 loc) • 1.72 kB
JavaScript
/**
* tdesign v1.15.2
* (c) 2025 tdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var dom = require('../../_chunks/dep-0a9c2d75.js');
require('vue');
require('../../_chunks/dep-040b3cbb.js');
require('../../_chunks/dep-0f5dd876.js');
require('../../_chunks/dep-3e1aa2e0.js');
require('../../_chunks/dep-79f734cc.js');
require('@babel/runtime/helpers/typeof');
require('../../_chunks/dep-63ff6e12.js');
require('../../_chunks/dep-c6c5ec69.js');
require('../../_chunks/dep-ce0157af.js');
require('../../_chunks/dep-41b6fe49.js');
function getRelativePosition(elm) {
var relativeElm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.body;
var _getWindowScroll = dom.getWindowScroll(),
scrollTop = _getWindowScroll.scrollTop,
scrollLeft = _getWindowScroll.scrollLeft;
var _elm$getBoundingClien = elm.getBoundingClientRect(),
elmTop = _elm$getBoundingClien.top,
elmLeft = _elm$getBoundingClien.left;
var _relativeElm$getBound = relativeElm.getBoundingClientRect(),
relElmTop = _relativeElm$getBound.top,
relElmLeft = _relativeElm$getBound.left;
var relativeElmPosition = dom.getElmCssPropValue(relativeElm, "position");
if (relativeElm.tagName.toLowerCase() !== "body" && relativeElmPosition === "relative" || relativeElmPosition === "sticky") {
return {
top: elmTop - relElmTop,
left: elmLeft - relElmLeft
};
}
if (dom.isFixed(elm)) {
return {
top: elmTop,
left: elmLeft
};
}
return {
top: elmTop + scrollTop,
left: elmLeft + scrollLeft
};
}
exports.getRelativePosition = getRelativePosition;
//# sourceMappingURL=getRelativePosition.js.map