滚动到隐藏的元素

时间:2017-01-02 08:53:09

标签: jquery jquery-animate

我在表td中有一个隐藏的输入字段,当我选择选项A时,我希望浏览器向下滚动到SELECT * FROM dbo.fn_getFinalPData(@CurrentMonth) WHERE 1 AND Location = ISNULL(NULLIF(@Location,'ALL'),Location) 内的可见输入。 我试过下面的代码,但有些东西不正确。 输入字段的ID:table td

#id_a-1-host

它向下滚动但只是一点点。它不会向下滚动到输入字段。

2 个答案:

答案 0 :(得分:3)

let ancestors; Collection.find().forEach(r => { if (r.ancestors) { r.ancestors.forEach(a => { if (!Collection.findOne(a)) missing.push(r._id); }); } }); 基于可见性,如果隐藏它,使用scrollTop,它在视口中不可用,因此无法按预期工作。在这些情况下使用命名锚点总是更好:

display: none

甚至空的跨度都可以:

<a name="id-a-off" id="id-a-off">

确保这是一个静态的父母。

此外,如果您设置了静态标题或其他内容,则还需要添加该高度

<span name="id-a-off" id="id-a-off"></span>

答案 1 :(得分:0)

您可以滚动到.closest(':visible')元素。它进入父母,直到找到一个可见的。

提示:如果使用.closest(),它也将包含元素本身

return $('html, body').animate({
    scrollTop: $(el).closest(':visible').offset().top
}, 400);