使用jQuery滚动到div中的元素并垂直居中

时间:2016-06-30 07:12:44

标签: jquery html css scroll

我正在尝试滚动到div中的元素,并将其垂直居中于div。

到目前为止,我已经尝试了code,但没有运气。

jQuery(document).on('click', '#scroll_button', function(e) {
    var el = $( "#scroll_test" );
    var elOffset = el.offset().top;
    var elHeight = el.height();
    var windowHeight = $("#editor").height();
    var offset;

    if (elHeight < windowHeight) {
        offset = elOffset - ((windowHeight / 2) - (elHeight / 2));
    }
    else {
        offset = elOffset;
    }

    jQuery('#editor').animate({
        scrollTop: $("#scroll_test").offset().top
    }, 1000);
});

我正在使用这个example,但它不是按照小提琴的方式工作的。滚动获取元素位于保持元素顶部的位置。我想把它放在垂直中心。

我还了解到使用jQuery获取元素的高度可能不准确,应该使用纯js,但我没有运气also

我最初是从this问题开始的。

1 个答案:

答案 0 :(得分:1)

jQuery('#editor').animate({
    scrollTop: offset
  }, 1000);
});

您忘记使用条件offset值。