Javascript 如何检查div前面的滚动位置
我创建了一个具有滚动的父div。它有包含文本内容的子div,我想检查scroll是否在其中一个子div前面 我通过比较顶部滚动位置和 div.offset().top 但当我向下滚动时,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
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的精确偏移量,它可以与滚动条的滚动条顶部进行比较。为一个子项获取滚动条是正确的。但是如果该子项超出文档并尝试查找文档中的以下子项的偏移量…此子项的偏移量将来自文档,但滚动顶部将来自第一个子项,因此在这种情况下,此计算将不正确。