<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Offset Function Test</title>
<style>
body {
margin: 0;
padding: 0;
position: relative;
}
.container {
position: relative;
top: 100px;
left: 50px;
border: 2px solid blue;
padding: 20px;
}
.nested {
position: relative;
top: 30px;
left: 40px;
border: 2px solid red;
padding: 10px;
}
.element {
position: relative;
top: 10px;
left: 20px;
border: 2px solid green;
}
</style>
</head>
<body>
<div class="container">
<div class="nested">
<div class="element" id="testElement">Test Element</div>
</div>
</div>
<script>
function offset(element) {
let parent = element.offsetParent,
top = element.offsetTop,
left = element.offsetLeft;
while (parent) {
if (!/MSIE 8/.test(navigator.userAgent)) {
left += parent.clientLeft;
top += parent.clientTop;
}
left += parent.offsetLeft;
top += parent.offsetTop;
parent = parent.offsetParent;
}
return {
top,
left
};
}
window.onload = () => {
const testElement = document.getElementById('testElement');
console.log('testElement.offsetTop:', testElement.offsetTop)
const offsets = offset(testElement);
console.log('Offset Top:', offsets.top);
console.log('Offset Left:', offsets.left);
};
</script>
</body>
</html>