首页 文章

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

提问于
浏览
1

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

我通过比较顶部滚动位置来尝试它

div.offset().top

但是当我向下滚动时,div将只计算来自父级的可见高度,偏移顶部位置,滚动将从父级开始计算它的顶部 . 我正在检查滚动的位置,如下所示:

if(scrollPosition>div.offset().top && scrollPostion (div.offset.top+div.height) ) {//scroll present }

获得div最高职位的正确方法是什么?

大段引用

提前致谢 .

2 回答

  • 0

    您需要添加父元素的offsetTop .

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

    假设两个框和一个具有名为 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>
    

    target.offsetHeight 不包含保证金 .

相关问题