2016-06-26 3 views
4

Я работаю над функцией jQuery, которая прокручивается до щелчка. Прямо сейчас он будет прокручиваться до вершины, мне было интересно, может ли это сделать его прокрутку до центра $('.scrollit') вместо верха или, возможно, способ компенсировать его количеством пикселей?jQuery: прокрутите до центра элемента

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

Аналогичный вопрос Ответьте здесь. http://stackoverflow.com/questions/3898130/check-if-a-user-has-scrolled-to-the-bottom Я думаю, что это поможет вам –

ответ

5

Вы можете использовать высоту элемента.

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

Добавить половину высоты элемента в scrollTop для прокрутки до центра элемента.

+0

Спасибо Tushar !, я в конечном итоге modding ваш ответ немного для удовлетворения конкретных потребностей, но он отлично работал! Я закончил делать scrollTop: $ (this) .offset(). Top - $ (this) .height() Спасибо! – Jeff

1

Существует два основных отличия от другого ответа. Его актуальность, если вы добавляете или удаляете смещение, поэтому я обмениваюсь плюсом с минусом. И я использую размер экрана как ссылку, а не элемент. Анимация прокрутки и обтекания функции необязательна.

function scrollTo (id) { 
    $('html,body').animate({ 
     scrollTop: $("#"+id).offset().top - $(window).height()/2 
    }, 1000); 
} 
Смежные вопросы