This JavaScript code example demonstrates how to calculate corrdinates for mouse events.
<!DOCTYPE html> <html> <head> <title>XoaX.net's Javascript</title> <script type="text/javascript" src="CalculatingCoordinates.js"></script> </head> <body> <div style="position:relative;left:20px;top:30px;width:400px;height:300px;overflow: auto;border:1px #444444 solid;background-color:black;"> <div style="position:absolute;left:145px;top:30px;width:500px;height:400px;background-color:yellow;" onmousemove="OnMouseMove(event)"></div> </div> <div style="position:relative;left:20px;top:40px;"> <p id="idOffset"></p> <p id="idScroll"></p> <p id="idPage"></p> <p id="idClient"></p> <p id="idRelative"></p> <p id="idParent"></p> <p id="idScrollParent"></p> </div> </body> </html>
function OnMouseMove(e) {
let qCurrElement = e.target;
qCurrElement.style.cursor = 'pointer';
let qOffset = document.getElementById("idOffset");
qOffset.innerHTML = "Offset = ( "+qCurrElement.offsetLeft+", "+qCurrElement.offsetTop+" )";
let qScroll = document.getElementById("idScroll");
qScroll.innerHTML = "Scroll = ( "+qCurrElement.scrollLeft+", "+qCurrElement.scrollTop+" )";
let qPage = document.getElementById("idPage");
qPage.innerHTML = "Page = ( "+e.pageX+", " +e.pageY+" )";
let qClient = document.getElementById("idClient");
qClient.innerHTML = "Client = ( "+e.clientX+", "+e.clientY+" )";
let dElementOffsetX = 0;
let dElementOffsetY = 0;
let qTempElement = qCurrElement;
do{
dElementOffsetX += qTempElement.offsetLeft - qTempElement.scrollLeft;
dElementOffsetY += qTempElement.offsetTop - qTempElement.scrollTop;
qTempElement = qTempElement.offsetParent;
} while(qTempElement != document.body);
let dRelX = e.pageX - dElementOffsetX;
let dRelY = e.pageY - dElementOffsetY;
let qRelative = document.getElementById("idRelative");
qRelative.innerHTML = "Relative = ( "+dRelX+", "+dRelY+" )";
let dParentX = dRelX + qCurrElement.offsetLeft;
let dParentY = dRelY + qCurrElement.offsetTop;
let qParent = document.getElementById("idParent");
qParent.innerHTML = "Parent Relative = ( "+dParentX+", "+dParentY+" )";
let qParentElement = qCurrElement.parentElement; // Same as offsetParent
let qScrollParent = document.getElementById("idScrollParent");
qScrollParent.innerHTML = "Parent Scroll = ( "+qParentElement.scrollLeft+", "+qParentElement.scrollTop+" )";
}
© 20072026 XoaX.net LLC. All rights reserved.