函数scrollTo(id)中的jquery偏移问题

时间:2014-09-30 10:00:33

标签: jquery html css offset scrollto

我正在使用此网站:Website

这是一个单页网站,我使用scrollTo(id)查看此处的代码:

function scrollTo(id) { 
  $('html, body').animate({scrollTop: $(id).offset().top - 50}, 1000);
}

问题是,当您在主页顶部尝试按下链接时,偏移量不起作用,并且几乎低于您要求的部分(页面)。 但是如果你滚动到页面的底部,然后按一个链接,偏移就像一个魅力,它会把你放在你要求的每个部分的顶部。

您可以查看我的源代码,我有一个js.js文件应该显示我正在使用的所有函数,也许还有其他一些我没有注意到的错误。 真的需要你的帮助:)!希望你能看出我做错了什么。

1 个答案:

答案 0 :(得分:0)

我认为这是因为你的菜单。

当您位于页面顶部时,您的菜单会有静态位置,这也意味着菜单的高度会添加到浏览器滚动到的像素数

但是当浏览器向下滚动到该位置时,菜单会变为固定位置,这意味着菜单的高度将从您想要的元素的顶部偏移量中减去滚动到。

就代码而言,我只需将这一小块CSS添加到正文中。

body.tiny { padding-top: 60px; }

假设60像素是菜单的高度。当菜单变为固定位置时,高度将被添加到身体衬垫中,将内容按原样向下推。

这样,当菜单将其位置更改为固定和反向时,您还可以获得更平滑的滚动。