Ответ 1
В некотором роде вы должны идентифицировать элементы, которые можно использовать для кликов. Я создаю пример, который использует атрибут class
для этого.
Шаг 1
Это script, который выполняет работу:
$('html,body').animate({
scrollTop: $(this).offset().top - ( $(window).height() - $(this).outerHeight(true) ) / 2
}, 200);
То, что вы пробовали, - это прокрутить контейнер до верхней части страницы. Вы также должны рассчитать и вычесть разницу между высотой контейнера и высотой видового экрана. Разделите это на два (так как вы хотите иметь одно и то же пространство сверху и снизу, и вы готовы к работе.
Шаг 2
Затем вы добавляете обработчик кликов ко всем элементам:
$(document).ready(function () {
$('.image').click( function() {
$('html,body').animate({ scrollTop: $(this).offset().top - ( $(window).height() - $(this).outerHeight(true) ) / 2 }, 200);
});
});
Шаг 3
Настройте некоторый HTML/CSS:
<style>
div.image {
border: 1px solid red;
height: 500px;
width: 500px;
}
</style>
<div class="image">1</div>
<div class="image">2</div>
<div class="image">3</div>
<div class="image">4</div>
<div class="image">5</div>
И все готово.
Проверьте демонстрацию
Попробуйте сами http://jsfiddle.net/insertusernamehere/3T9Py/