jQuery滚动停止在页面底部附近

| 我正在使用jquery滚动到页面的各个部分。 这是代码:
// Scroll to element
$(\'#menu li a\').click(function(){        
    var elementId = $(this).attr(\'href\');   
    $(\'html, body\').animate({ scrollTop: $(elementId).offset().top }, 1600);
    return false;
    });

<ul id=\"menu\">
  <li><a href=\"#item1\">1</a></li>
  <li><a href=\"#item2\">2</a></li>
</ul>

<div id=\"item-1\">placeholder-1</div>
<div id=\"item-2\">placeholder-2</div>
如您所见,我正在从菜单链接中获取目标元素的href(#id),然后滚动到目标元素。 但是问题在于,我的目标元素一直位于页面底部,并且当页面滚动到最后时,该元素的顶部无法滚动到页面顶部,因为存在底部没有足够的页面...我说得通吗? 我正在尝试使用css或jquery制定一种解决方案,这意味着无论页面的高度如何(或底部的填充/边距),单击菜单项时该元素都将位于视口的顶部。 是否可以使用JavaScript根据视口的高度添加更多填充?我是否使用某种溢出技巧?     
已邀请:
您的问题是页面的高度不如您希望的高。如果您尝试转到
#x
,而
#x
<body>
的底部,那么您将滚动至页面底部,而当您希望将
#x
移至窗口的顶部时,则将其移至窗口的底部。 我认为您唯一的选择是迫使3英镑更高。像这样:
$(document).ready(function() {
    viewport_height = $(window).height();
    $height_hack    = $(\'<div>&nbsp;</div>\').height(viewport_height);
    $(\'body\').append($height_hack);
});
诸如此类的操作会将(append)空的ѭ7附加到内容的底部,此额外的
<div>
将具有与浏览器视口相同的高度,并且此额外的高度将使您始终可以将元素一直滚动到顶部视口。     
我认为您可以做很多事情来解决这个问题,但是我会使用
CSS min-height Property
body
。我相信这是一个更私人的答案,因此您可以按照自己的意愿做任何事情,增加填充,边距... 但是我将设置最小高度,以使屏幕可以滚动到所需的项目。 更新资料 嗯,对。我没有考虑动态内容。如果内容变大,则身体最小高度可能无法解决问题。     

要回复问题请先登录注册