【发布时间】:2011-12-13 22:18:57
【问题描述】:
我在一个 div 中有很多 section 标签,溢出设置为 hidden。代码大致如下:
<div id="viewport">
<section>
content
</section>
<section>
content
</section>
</div>
我之所以这样设置是因为我希望能够在菜单中按下相应链接时滚动浏览包含在div 中的sections。我有这个功能:
$('#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);
它使整个页面滚动。当我尝试用 $('section, #viewport') 替换 $('body,html') 时,它会在 div 内滚动,但不能正确滚动。
我有一个here 的活生生的例子。我认为它与.offset() 或我传递给.animate() 的内容有关,但我尝试了很多不同的东西但无济于事。有人可以指出我正确的方向或告诉我我做错了什么吗?
【问题讨论】:
标签: javascript jquery animation scrolltop