Jquery 当上面的某些元素隐藏时,单击并保持在相同的位置

Jquery 当上面的某些元素隐藏时,单击并保持在相同的位置,jquery,click,position,expand,Jquery,Click,Position,Expand,演示: 我有这样的内容#1、#2、#3、#4等等 当我单击readmore#2并单击readmore#1时,这是正常的,因为隐藏内容在下面展开,窗口保持在相同的位置 但是,当我单击“阅读更多”时,请单击“内容”2,然后单击“阅读更多” 扩展内容#1将隐藏,内容#2将显示完整内容 所以窗口位置不会保持在同一位置,对吗 我不知道该怎么办 是否可以使用滚动到当前展开的元素 PS:如果这个问题不稳定,我很抱歉让我展开。我不确定我是否理解您的确切需求,但如果我理解正确,那么这可能就是您想要的: var m

演示:

我有这样的内容#1、#2、#3、#4等等

当我单击
readmore
#2并单击
readmore
#1时,这是正常的,因为隐藏内容在下面展开,窗口保持在相同的位置

但是,当我单击“阅读更多”时,请单击“内容”2,然后单击“阅读更多”

扩展内容#1将隐藏,内容#2将显示完整内容

所以窗口位置不会保持在同一位置,对吗

我不知道该怎么办

是否可以使用滚动到当前展开的元素


PS:如果这个问题不稳定,我很抱歉让我展开。

我不确定我是否理解您的确切需求,但如果我理解正确,那么这可能就是您想要的:

var more_btn = $('div > span');
var more_content = $('div > div');

more_btn.on('click', function () {
    more_btn.show();
    more_content.hide();
    $(this).hide().next('div').show().css('display', 'inline');
    $('html, body').animate({
        scrollTop: $(this).parent('div').offset().top
    }, 500);
});

演示:

我不确定我是否理解您的确切需求,但如果我理解正确,那么这可能就是您想要的:

var more_btn = $('div > span');
var more_content = $('div > div');

more_btn.on('click', function () {
    more_btn.show();
    more_content.hide();
    $(this).hide().next('div').show().css('display', 'inline');
    $('html, body').animate({
        scrollTop: $(this).parent('div').offset().top
    }, 500);
});
演示:

我现在完成了:

var more_btn = $('div > span');
var more_content = $('div > div');

more_btn.on('click', function (e) {
    var $this = $(this);
    var top = e.pageY - $(window).scrollTop();
    more_btn.show();
    more_content.hide();
    $(this).hide().next('div').show().css('display', 'inline');
    $('html, body').scrollTop(
        $this.next('div').offset().top - top
    );

});
演示:我现在完成了:

var more_btn = $('div > span');
var more_content = $('div > div');

more_btn.on('click', function (e) {
    var $this = $(this);
    var top = e.pageY - $(window).scrollTop();
    more_btn.show();
    more_content.hide();
    $(this).hide().next('div').show().css('display', 'inline');
    $('html, body').scrollTop(
        $this.next('div').offset().top - top
    );

});

演示:

谢谢,这是一个谷歌滚动,我也做了。但所有元素能像单击之前一样保持在相同的位置吗?(比如,但readmore内容也会隐藏它)单击之前的相同位置是什么意思?您可以捕获
scrollTop
值,在完成动画后,如果我们无法执行此操作,请将其回滚到相同的值,因此我将使用您当前的答案:DWhat about use e.pageY,$(this).offset().top;谢谢,这是谷歌滚动,我也做了。但所有元素能像单击之前一样保持在相同的位置吗?(比如,但readmore内容也会隐藏它)单击之前的相同位置是什么意思?您可以捕获
scrollTop
值,在完成动画后,如果我们无法执行此操作,请将其回滚到相同的值,因此我将使用您当前的答案:DWhat about use e.pageY,$(this).offset().top;