Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery计算div中心到屏幕中心的直接(对角线)距离_Javascript_Jquery_Distance - Fatal编程技术网

Javascript 使用jquery计算div中心到屏幕中心的直接(对角线)距离

Javascript 使用jquery计算div中心到屏幕中心的直接(对角线)距离,javascript,jquery,distance,Javascript,Jquery,Distance,嘿 是否可以使用jquery读取/计算div中心与屏幕中心之间的直接距离 我不需要从div到屏幕垂直中心的距离(仅提供高度上的距离)或到屏幕水平中心的距离(仅提供宽度上的距离),而是对角线距离 对于像素,这是可能的吗 提前谢谢你的帮助, 问候 Lucas无论你是如何向下滚动页面,这都应该有效 let element = document.getElementById("someId"); let elementPosition = getCenterOfElement(element); let

是否可以使用jquery读取/计算div中心与屏幕中心之间的直接距离

我不需要从div到屏幕垂直中心的距离(仅提供高度上的距离)或到屏幕水平中心的距离(仅提供宽度上的距离),而是对角线距离

对于像素,这是可能的吗

提前谢谢你的帮助, 问候


Lucas

无论你是如何向下滚动页面,这都应该有效

let element = document.getElementById("someId");
let elementPosition = getCenterOfElement(element);
let documentPosition = getCenterOfPage();
let result = calculateDistance(documentPosition , elementPosition);

function getCenterOfPage() {
    let x = $(document).width()/2;
    let y = $(document).height()/2;
    let coordinates = {x, y};
    return coordinates;
}
function getCenterOfElement(element) {
    let x = $(element).offset().left + $(element).outerWidth()/2;
    let y =  $(element).offset().top + $(element).outerHeight()/2;
    let coordinates = {x, y};
    return coordinates;
}
function calculateDistance(coordinates1, coordinates2) {
    let h = coordinates1.x - coordinates2.x;
    let v = coordinates1.y - coordinates2.y;
    let result = Math.sqrt(h*h + v*v);
    return result;
}

如果您可以计算水平距离(
h
)和垂直距离(
v
),请使用毕达哥拉斯公式
对角线=数学.sqrt(h*h+v*v)
。感谢@kloikfriend让我走上了正确的道路,它很有魅力。:-)