在jQuery的slideUp之后保持相同的位置

Stay in the same position after a jQuery's slideUp

本文关键字:位置 之后 jQuery slideUp      更新时间:2023-09-26

当我单击div (x) 时,它会使用 .slideDown() 展开,高度会增加,当我检测到滚动经过此元素时(当 x 不再在视口中时),使用inview插件,我用 .slideUp() 关闭它,增加的高度恢复到正常状态,而不是在 (y) 处, 我现在在 (z)

.slideDown()

x
x
x
x
y  <-- I arrive here with scrolling
y
z
z

.slideUp()

x
x <-- height decreased
y <-- instead of being here..
y 
z <-- I'm here.
z

即使在元素的高度降低后,我如何保持相同的位置?

演示

每当触发.slideDown()时,获取页面的当前滚动顶部位置,并在触发.slideUp()后设置该滚动位置。您可以使用以下代码。

//Get the current position of the page
var pagePosition = $(window).scrollTop();               
//Set page position after `.slideUp()` called
$("html,body").scrollTop(pagePosition);