Javascript 如何在溢出隐藏div中滚动到某个当前不可见的元素?
我有一个溢出隐藏div中的元素列表。因此并非所有元素都可见。现在,如果一个元素被激活,它应该在div中可见 如何使用jQuery滚动到活动元素 最后一个元素具有活动类只是一种方便。它将被动态切换Javascript 如何在溢出隐藏div中滚动到某个当前不可见的元素?,javascript,jquery,scroll,Javascript,Jquery,Scroll,我有一个溢出隐藏div中的元素列表。因此并非所有元素都可见。现在,如果一个元素被激活,它应该在div中可见 如何使用jQuery滚动到活动元素 最后一个元素具有活动类只是一种方便。它将被动态切换 var scrollToEl=$(“div.element.active”); console.log(zoomToEl) #main, #边栏{ 高度:200px; } #包装纸{ 宽度:190px; 浮动:左; 背景:灰色; 溢出:自动; 溢出x:隐藏; } #边栏分区元素{ 高度:150像素;
var scrollToEl=$(“div.element.active”);
console.log(zoomToEl)代码>
#main,
#边栏{
高度:200px;
}
#包装纸{
宽度:190px;
浮动:左;
背景:灰色;
溢出:自动;
溢出x:隐藏;
}
#边栏分区元素{
高度:150像素;
宽度:150px;
背景颜色:绿色;
边缘底部:10px;
}
#侧边栏div.element.active{
背景色:红色;
}
A.
B
C
D
E
F
G
H
也许您正在寻找方法
演示:您可以将包装器div的设置为活动元素的顶部
$("#wrapper").scrollTop($("#wrapper").scrollTop() + $("div.element.active").position().top);
它似乎有一些缺点:尤其是“简单地跳到一个特定的元素,该元素很可能位于页面末尾”对我来说是一个破坏者。@k0pernikus您最好在问题中注明您正在寻找动画解决方案。除此之外,我认为这个方法非常好用,非常简单。我的意思不是不尊重你提供的解决方案。这根本不符合我的需要:)@k0pernikus嗯,这是有道理的。至少现在你知道了另一种方法:)我用它来模拟ExtJS中html组合框的正常行为。试过你的演示,但只运行了一次,试着重复,你会看到一些奇怪的行为。这似乎是由以下代码修复的:$(“#wrapper”).scrollTop($(“#wrapper”).scrollTop()+$(“div.element.active”).position().top);演示:接得好,@Rob!这是因为当它滚动到活动div时,它处于位置。top
变为0。下次尝试运行该代码时,它将滚动到位置0,即容器的实际顶部。更新了我的代码。@Rob,这太棒了。对于具有父级:100%高度
和/或溢出:隐藏
的情况,这是最好的解决方案-这与移动设备的情况一样
$("#wrapper").scrollTop($("#wrapper").scrollTop() + $("div.element.active").position().top);