2017-10-16 117 views
0

所以我有一个团队网页,我正在建设的网站。在移动它的一列。当您点击员工照片时,隐藏的div会展开,显示此员工信息(标题,引号等)以及任何其他扩展的员工信息div被折叠,因此这意味着一次只能显示一个隐藏的div。jQuery ScrollTop不会滚动到其他div折叠后的正确位置

问题是,当这些div展开和折叠时,与之前的展开div相比,它们占据的高度或多或少。有了这个说法,jQuery scrollTop将前往div的前一个位置,而不是其新位置的顶部。

有什么我可以做的,使它成为新的扩大的div的顶部?

这段代码就是我现在使用的,它的高于jQuery用来扩展和关闭隐藏的div。

jQuery('html, body').delay(500).animate({ scrollTop: jQuery(eleClass2).offset().top }, 1000); 

回答

0

我认为你可能需要给当前目标的父节点分配偏移量。就拿它为它的价值,但我会尝试这样的:

jQuery('html, body').delay(500).animate({ 
    scrollTop: jQuery(eleClass2).parent().offset().top 
}, 1000); 
+0

所以我添加的代码,我得到一个错误在控制台:jQuery的(...)parentNode不是一个函数 –

+0

尝试.parent()是jQuery的等价物。我的错。 – JakeofSpades

+0

所以错误消失了,但我仍然有同样的问题。它喜欢滚动到前一个位置,而不是当前位置。有时它可能是几个像素,但大部分时间是几百个像素。 我一半想要在手机/平板电脑上展开所有这些隐藏的div。 –