在jQuery中onScroll期间获取元素id

时间:2015-09-30 23:48:10

标签: jquery

我遇到了问题。

我需要在我的页面上找到div女巫的id。

如何滚动div项目时我可以获得div女巫的id是最明显的?

实际上,使用此代码可以正常工作,但因为框之间有一些边距/填充,它会通过回显undefined或第一个id来创建错误。

有人请帮忙吗?

我的HTML:

<div class="items"> <!-- Scrollable -->
    <div class="logo"></div>
    <div class="content">
        <div id="item1">...</div> <!-- A lot of text -->
        <div id="item2">...</div> <!-- A lot of text -->
        <div id="item3">...</div> <!-- A lot of text -->
        <div id="item4">...</div> <!-- A lot of text -->
     </div>
</div>

我的JS:

jQuery('.items').scroll(function() {
    var c = $(this).children('.content').children();
    var top = c.first();
    c.each(function(){
        var offset = $(this).offset().top;
        if(offset < 0 && offset >= -$(this).height()){
            top = $(this);
            return false;
        }
    });

    var name = top.attr('id');
    console.log(name);
});

jsFiddle中的代码。在其中,您将看到当滚动到达带有填充的两个彩色div之间时,item1将被回显。我想保留现有的。

1 个答案:

答案 0 :(得分:0)

尝试使用outerHeight代替高度。这包括所有填充和边距:

$(this).outerHeight(true)