ukelli-ui
Version:
ukelli-ui 是基于 React 的 UI 库,提供简约和功能齐全的组件,可高度定制的组件接口,灵活的配置,提供给开发者另一种开发思路,也致力于尝试不同的组件使用和开发方向。
55 lines (44 loc) • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = setDOMById;
exports.getElementLeft = getElementLeft;
exports.getElementTop = getElementTop;
exports.getElementOffset = getElementOffset;
var _utils = require("./utils");
function setDOMById(targetID) {
var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
if (!targetID) console.log('params id is required');
var targetDOM = document.getElementById(targetID);
if (!targetDOM) {
targetDOM = document.createElement('div');
targetDOM.id = targetID;
targetDOM.className = className;
document.body.appendChild(targetDOM);
}
return targetDOM;
}
function getElementLeft(element) {
return getElementOffset(element).offsetLeft;
}
function getElementTop(element) {
return getElementOffset(element).offsetTop;
}
function getElementOffset(element) {
if (!element) return;
var actualTop = element.offsetTop;
var actualLeft = element.offsetLeft;
var current = element.offsetParent;
while (current !== null) {
actualLeft += current.offsetLeft + current.clientLeft - current.scrollLeft;
actualTop += current.offsetTop + current.clientTop - current.scrollTop;
current = current.offsetParent;
}
/** 需要把 body 的滚动加上 */
actualTop -= (0, _utils.getScrollTop)();
return {
offsetLeft: actualLeft,
offsetTop: actualTop
};
}