Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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 如何检查div前面的滚动位置_Javascript_Html_Scroll - Fatal编程技术网

Javascript 如何检查div前面的滚动位置

Javascript 如何检查div前面的滚动位置,javascript,html,scroll,Javascript,Html,Scroll,我创建了一个具有滚动的父div。它有包含文本内容的子div,我想检查scroll是否在其中一个子div前面 我通过比较顶部滚动位置和 div.offset().top 但当我向下滚动时,div将只计算从父对象到偏移顶部位置的可见高度,滚动将从父对象开始计算它的顶部。我正在检查卷轴的位置,如下所示: if(scrollPosition>div.offset().top && scrollPostion (div.offset.top+div.height) ) {//scro

我创建了一个具有滚动的父div。它有包含文本内容的子div,我想检查scroll是否在其中一个子div前面

我通过比较顶部滚动位置和

div.offset().top

但当我向下滚动时,div将只计算从父对象到偏移顶部位置的可见高度,滚动将从父对象开始计算它的顶部。我正在检查卷轴的位置,如下所示:

if(scrollPosition>div.offset().top && scrollPostion (div.offset.top+div.height) ) {//scroll present }
获得div最高职位的正确方法是什么

大宗报价


提前感谢。

您需要添加父元素的偏移量

var t = div.offsetTop;
var p = div;
while (p=p.offsetParent)
    t += p.offsetTop;

假设有两个框,其中一个有名为
container
的滚动条,另一个是名为
target
的子项:

<div id="container">
    <div id="target"></div>
</div>
<script type="text/javascript">
    var container = document.getElementById('container'),
        target = document.getElementById('target');
    if((container.scrollTop - target.offsetTop) > 0 && (container.scrollTop - target.offsetTop) < target.offsetHeight) {
        console.log('in range');
    }
</script>

var container=document.getElementById('container'),
target=document.getElementById('target');
如果((container.scrollTop-target.offsetTop)>0&&(container.scrollTop-target.offsetTop)

target.offset视图
不包含边距。

您要使用父级的
滚动顶部
,并将其与子div的
位置()进行比较。顶部
(不是
偏移量
)位置相对于父级,而偏移量实际上相对于文档,我正在使用相对于文档和滚动条滚动条顶部的子div偏移量…因为我将滚动子div…子div将上升…因为子div有不同的高度…所以很难得到子div的精确偏移量,它可以与滚动条的滚动条顶部进行比较。为一个子项获取滚动条是正确的。但是如果该子项超出文档并尝试查找文档中的以下子项的偏移量…此子项的偏移量将来自文档,但滚动顶部将来自第一个子项,因此在这种情况下,此计算将不正确。