2

我以为这很容易。

我有以下 HTML

<div>
<div id="child"></div>
</div>

我尝试了几件事

if ($('#child').length){
    $('html, body').animate({scrollTop: $(this).parent().offset().top}, 'slow');
}

if ($('.success_div').length){
    pdiv = $(this).parent();
    $('html, body').animate({scrollTop: pdiv.offset().top}, 'slow');
}

错误:TypeError:pdiv.offset(...) 未定义

4

2 回答 2

3

这个怎么样?

if ($('#child').length){
    $('body').animate({scrollTop: $('#child').parent().offset().top},'slow');
});

在 if 语句中调用元素不会选择它,因此 $(this) 不匹配内部的任何内容,所以我在语句内部再次if ($('#child').length){调用。$('#child')

于 2013-10-25T01:34:06.667 回答
0

将子元素滚动到父元素的顶部。

if($('#child').length)
{
  $('#parent').animate({
    scrollTop: $('#child').offset().top - $('#parent').offset().top
  },'slow');
};
于 2021-11-01T09:08:16.593 回答