2016-06-30 2 views
0

Я пытаюсь прокручивать элемент внутри div и центрировать его по вертикали в div.Прокрутка и вертикальное центрирование элемента внутри div с помощью javascript

Я до сих пор пробовал это 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
jQuery('#editor').animate({ 
    scrollTop: offset 
    }, 1000); 
}); 

Вы забыли использовать условное значение offset.

+1

Да, @gnCupo избил меня. Вот [обновленная скрипка] (https://jsfiddle.net/maneeshchiba/13jex6p5/1/) – Maneesh

Смежные вопросы