【发布时间】:2020-01-19 09:30:02
【问题描述】:
当 ID 到达父 div 的顶部时,我想用 vanilla javascript 触发一个事件。已经看到使用 jQuery 进行此类操作的示例,但我不想为简单的效果加载那么多。另外,大多数示例都处理视口的顶部,而我的主 div 大约是视口高度的 90%,上面有一个 info div。
我正在处理一个包含多个部分的长网页,该网页在主 div 中滚动。当每个部分的标题<h2 id="title1">bla bla bla</h2> 到达主 div 的顶部时,我想触发 info div 中显示的标题<div id="info1">bla bla bla</div> 的简单显示/隐藏。显示/隐藏很简单:
function chngInfo(x) {
const targets = document.querySelectorAll('[id^="info"]');
for (let i = targets.length; i--;) {
targets[i].style.display = 'none';
}
document.getElementById('info' + x).style.display = 'block';
}
它触发了让我受阻的功能。更复杂的情况是主 div 的高度因设备而异,因此不能轻易地根据视口高度进行公式计算。
如果单个函数可以在向下滚动时通过顶部或在向上滚动时通过底部时查找任何 titleX,那将是主要的好处。
【问题讨论】:
-
我不确定我是否理解你...当用户滚动到顶部时,你需要用元素触发事件吗?
-
是的,当页面上的
<h2 id="titleX">之一到达顶部时,我想为相关的 infoX 触发chngInfo函数 -
我想知道“交叉路口观察员”是否会有所帮助?
标签: javascript css scroll