访问jQuery中当前已滚动到的元素

访问jQuery中当前已滚动到的元素,jquery,scroll,Jquery,Scroll,我希望能够通过jQuery设置滚动点,这样当用户滚动到页面上某个部分的顶部时,就会触发一个函数。我是这样做的:- var target = $("section").offset().top; var interval = setInterval(function() { if ($(window).scrollTop() >= target) { alert("test"); clearInterval(interval); } }, 25

我希望能够通过jQuery设置滚动点,这样当用户滚动到页面上某个部分的顶部时,就会触发一个函数。我是这样做的:-

var target = $("section").offset().top;
var interval = setInterval(function() {
    if ($(window).scrollTop() >= target) {
        alert("test");
        clearInterval(interval);
    }
}, 250);

但是,如果我有警报(“测试”),我希望能够访问当前滚动到的元素,以便我可以从它的html中获取数据,也就是说,如果用户滚动到#Section 2的顶部,我可以在该点访问它并从那里继续,因为不同的部分需要启动不同的功能。非常感谢您的帮助

您的元素本质上是
$(“部分”)
中的第一个元素。jQuery中的
offset()
方法只返回第一个匹配元素的偏移量:

获取第一个元素的当前坐标,或设置匹配元素集中每个元素相对于文档的坐标


您是否尝试在较高的位置(例如窗口、文档、正文)设置事件委托,并查看事件是否为您提供了有关滚动元素的信息?我想我现在明白了为什么它不起作用了。正如ozk所说,它似乎只得到了第一部分的元素。我可以做的是,首先获取每个节元素的所有顶部位置,并将它们放入一个数组中,然后每次用户滚动时,它都会检查该数组,查看它们是否达到了这些点,如果达到了,则启动相关函数。