ukelli-ui
Version:
[](https://travis-ci.org/ukelli/ukelli-ui) [](https://packagephobia.now.sh/result?p=ukelli-ui)
60 lines (49 loc) • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = setDOMById;
exports.getElementLeft = getElementLeft;
exports.getElementTop = getElementTop;
exports.getElementOffset = getElementOffset;
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) {
if (!element) return;
var actualLeft = element.offsetLeft;
var current = element.offsetParent;
while (current !== null) {
actualLeft += current.offsetLeft + current.clientLeft;
current = current.offsetParent;
}
return actualLeft;
}
function getElementTop(element) {
if (!element) return;
var actualTop = element.offsetTop;
var current = element.offsetParent;
while (current !== null) {
actualTop += current.offsetTop + current.clientTop;
current = current.offsetParent;
}
return actualTop;
}
function getElementOffset(elem) {
if (!elem) return console.log('please pass elem');
var left = getElementLeft(elem);
var top = getElementTop(elem);
return {
offsetLeft: left,
offsetTop: top
};
}