【发布时间】:2021-07-30 10:15:32
【问题描述】:
我正在尝试在滚动时使用相同类的多个容器 div 中运行相同的函数。
我需要为每个容器计算不同的值并将它们用于该特定功能。问题是我需要使用类,而且我不知道每个页面将有多少个容器。
这是我的html:
<div class="div-container container">
<div class="div-inside"></div>
<div class="div-inside-2"></div>
<div class="div-inside"></div>
<div class="div-inside-2"></div>
</div>
<div class="div-container container">
<div class="div-inside"></div>
<div class="div-inside-2"></div>
<div class="div-inside"></div>
<div class="div-inside-2"></div>
</div>
<div class="div-container container">
<div class="div-inside"></div>
<div class="div-inside-2"></div>
<div class="div-inside"></div>
<div class="div-inside-2"></div>
</div>
这就是我正在尝试的
var p1 = document.getElementsByClassName('div-inside')
function moveDivinside() {
const divcont = document.querySelectorAll('.div-container')
divcont.forEach(element => {
let marginWintop = element.getBoundingClientRect().top;
let winHeight = window.innerHeight;
let difference = winHeight - (winHeight - marginWintop);
let p1n;
for (p1n = 0; p1n < p1.length; p1n++) {
p1[p1n].style.top = difference * .09 + 'px';
}
});
}
window.addEventListener('scroll', function () {
requestAnimationFrame(moveDivinside)
}, false)
它似乎只从最后一个容器中获取数据。
【问题讨论】:
标签: javascript html css loops multiple-instances