如何使用jQuery找到最接近当前位置的元素

时间:2012-05-25 19:51:23

标签: javascript jquery

我有一个包含以下几个部分的文档:

<div class='section' id='sec1'>
    lalala
    lalala
    lalala
</div>

<div class='section' id='sec2'>
    lalala
    lalala
    lalala
</div>

<div class='section' id='sec3'>
    lalala
    lalala
    lalala
</div>

<div class='section' id='sec4'>
    lalala
    lalala
    lalala
</div>

如何抓取当前滚动位置最近的<div.section>(可能,这相当于读者当前正在查看的部分)?

2 个答案:

答案 0 :(得分:21)

您可以使用$(window).scrollTop()$(el).postion().top来确定滚动后元素距离屏幕顶部的距离。

然后,您可以根据需要使用此信息来操作元素。

这是一个有效的jsfiddle示例: http://jsfiddle.net/gizmovation/x8FDU/

答案 1 :(得分:-5)

每当您悬停一个元素时,mousemove事件会告诉您正在悬停的元素。

$(document).bind('mousemove', function(e) {
    e.target
    /*
        the target in click/hover events
        is the element that the event was
        triggered on.
    */
});

一个缺点可能是e.target会为您提供最高z-index的元素 - 最顶层的元素 - 所以如果您的文字上方有叠加层,它将会为您提供重叠而不是文字div