У меня довольно много тегов section
в div с параметром переполнения hidden
. Код примерно такой:
<div id="viewport">
<section>
content
</section>
<section>
content
</section>
</div>
Я настроил его так, потому что я хочу иметь возможность прокручивать sections
, содержащийся в div
, при нажатии соответствующей ссылки в меню. У меня есть такая функция:
$('#mn a').click(function(){
var aHref = $(this).attr("href");
var sectionHeight = $('section'+aHref+'').height();
$('#viewport').height(sectionHeight);
});
Который я использую для изменения размера #viewport
div, потому что sections
имеют разные размеры. Когда я пытаюсь вставить эту часть прокрутки в эту функцию:
$('body,html').animate({scrollTop: $(aHref).offset().top}, 800);
он заставляет всю страницу прокручиваться. Когда я пытаюсь заменить $('body,html')
на $('section, #viewport')
, он прокручивается внутри div, но не делает этого должным образом.
У меня есть живой пример этого здесь. Я предполагаю, что это как-то связано либо с .offset()
, либо с тем, что я передаю в .animate()
, но я пробовал довольно много разных вещей, но безрезультатно. Может кто-нибудь указать мне правильное направление или сказать, что я сделал не так?