jQuery:滚动到元素的中心

时间:2016-06-26 06:03:48

标签: jquery html scroll

我正在研究一个jQuery函数,它在点击时滚动到div。现在它会滚动到顶部,我想知道它们是否可以让它滚动到$('.scrollit')的中心而不是顶部,或者可能是一种方法来将它偏移一些像素数量?

$(".playbox").on('click', function () {
    $('.scrollit').animate({
        scrollTop: $(this).offset().top
    }, 1000);

2 个答案:

答案 0 :(得分:8)

您可以使用元素的高度。

scrollTop: $(this).offset().top + $(this).height() / 2;

将元素高度的一半添加到scrollTop以滚动到元素的中心。

答案 1 :(得分:1)

另一个答案有两个主要区别。如果您添加或删除偏移量,则相关,因此我将加号与减去进行交换。我使用屏幕尺寸作为参考,而不是元素。要为滚动设置动画并在函数中换行是可选的。

function scrollTo (id) {
   $('html,body').animate({
      scrollTop: $("#"+id).offset().top - $(window).height()/2
   }, 1000);
}