Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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
查找最近的div元素,逻辑部分。JavaScript_Javascript_Logic - Fatal编程技术网

查找最近的div元素,逻辑部分。JavaScript

查找最近的div元素,逻辑部分。JavaScript,javascript,logic,Javascript,Logic,我试图找到最接近(当前pageYOffset)的div元素,但逻辑上有问题。 你能帮我修改一下工作算法吗 我的代码是: var closestDiv = window.pageYOffset - arrayOfSceneDivs[0].offsetTop; var closestDivIndex = 0; for (var a = 0; a < arrayOfSceneDivs.length; a++) { if (((window.pageYOffset - arrayOfSce

我试图找到最接近(当前pageYOffset)的div元素,但逻辑上有问题。 你能帮我修改一下工作算法吗

我的代码是:

var closestDiv = window.pageYOffset - arrayOfSceneDivs[0].offsetTop;
var closestDivIndex = 0;
for (var a = 0; a < arrayOfSceneDivs.length; a++) {
    if (((window.pageYOffset - arrayOfSceneDivs[a].offsetTop) - closestDiv) < 10 ) {
        closestDiv = window.pageYOffset - arrayOfSceneDivs[a].offsetTop;
        closestDivIndex = a;
    }
}
if (closestDivIndex != 0) {
    i = closestDivIndex;
    console.log(arrayOfSceneDivs);
    console.log(i);
    window.scrollTo(0, arrayOfSceneDivs[i].offsetTop);
}
var closestDiv=window.pageYOffset-arrayOfSceneDivs[0]。offsetTop;
var closestDivIndex=0;
对于(变量a=0;a

非常感谢

“最接近”是指在屏幕上,而不是在DOM中。@adeneo当然,最接近当前窗口。此处使用的pageYOffsetDistance始终是一个正实数,在计算距离时使用
Math.abs()