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