如何将滚动条滚动到页面中心?

时间:2014-02-04 17:31:41

标签: javascript jquery css

我正在关注这篇文章。

Scroll to the center of viewport

我喜欢这个答案但是当我使用它时,我的控制台出错了。

  $('body').animate({
      scrollTop: $(this).offset().top - ($(window).height()-$(this).outerHeight(true)) / 2
  }, 5000);

错误:

  

未捕获的TypeError:无法读取未定义的属性“top”

我不确定为什么$(this).offset() is undefined。任何人都可以帮我解决这个问题吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

而不是使用$(this),而是使用$('body').offset()。看起来$(this)指的是没有偏移属性的窗口对象。

答案 1 :(得分:1)

你需要提到“这个”代表什么。在你提到的post中,他们正在使用'img'标签。请改用:

$( document ).ready(function() {
    $('body').animate({ scrollTop: $('body').offset().top - ( $(window).height() - $(this).outerHeight(true) ) / 2  }, 500);
});

此外,您可能希望将最后的5000更改为较小的数字。否则,滚动到页面中心需要5秒钟。