Javascript 如何将窗口滚动与充满偏移顶部的阵列进行比较?

Javascript 如何将窗口滚动与充满偏移顶部的阵列进行比较?,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个数组,其中包含offset() 我编写了下面的代码来检查窗口何时滚动,如果windows.scrollTop与数组中的某个值相等,则发出警报,但它不起作用 $(window).scroll(function () { var WindowScroll = $(window).scrollTop(); if (TopPositions.indexOf(WindowScroll) > 0) { alert('Yep !'); } }); 我确

我有一个数组,其中包含offset()

我编写了下面的代码来检查窗口何时滚动,如果windows.scrollTop与数组中的某个值相等,则发出警报,但它不起作用

$(window).scroll(function () {
    var WindowScroll = $(window).scrollTop();
    if (TopPositions.indexOf(WindowScroll) > 0) {
        alert('Yep !');
    }
}); 
我确信并测试了我的数组在滚动时包含一些值,但不知道为什么它不工作。
谢谢你的帮助

在代码示例中,您的
TopPositions
变量似乎未填充,或者simple与实际滚动位置不完全匹配,但数组中的第一个元素也会失败,因为
indexOf
将返回
0

更好的实现(如果与您正在使用或由巴贝尔翻译的浏览器兼容)是使用
some

const topPositions = [0, 100, 200];
$(window).scroll(function () {
    const windowScroll = $(window).scrollTop();
    if (topPositions.some((topPosition) => { return topPosition === windowScroll})) {
        alert('Yep !');
    }
}); 

WindowScroll
的值你得到了吗?@Mahi是的,我console.log&显示了每个WindowScroll.check-in console
TopPositions.indexOf(WindowScroll)
我检查并显示了“-1”47次。这意味着数组中没有数据。首先尝试填充阵列。谢谢Ebi…,它的准确性很弱?因为我应该慢一点提醒“是的!”。事件并不是每一个像素都会被触发(你现在可能已经猜到了)。您可以做的是更改测试,以便在值接近另一个值或者仅仅是大于另一个值时使用测试,而不是使用
=
,这主要取决于您的用例。谢谢我的朋友…:)