我正在使用此网站:Website
这是一个单页网站,我使用scrollTo(id)查看此处的代码:
function scrollTo(id) {
$('html, body').animate({scrollTop: $(id).offset().top - 50}, 1000);
}
问题是,当您在主页顶部尝试按下链接时,偏移量不起作用,并且几乎低于您要求的部分(页面)。 但是如果你滚动到页面的底部,然后按一个链接,偏移就像一个魅力,它会把你放在你要求的每个部分的顶部。
您可以查看我的源代码,我有一个js.js文件应该显示我正在使用的所有函数,也许还有其他一些我没有注意到的错误。 真的需要你的帮助:)!希望你能看出我做错了什么。
答案 0 :(得分:0)
我认为这是因为你的菜单。
当您位于页面顶部时,您的菜单会有静态位置,这也意味着菜单的高度会添加到浏览器滚动到的像素数
但是当浏览器向下滚动到该位置时,菜单会变为固定位置,这意味着菜单的高度将从您想要的元素的顶部偏移量中减去滚动到。
就代码而言,我只需将这一小块CSS添加到正文中。
body.tiny { padding-top: 60px; }
假设60像素是菜单的高度。当菜单变为固定位置时,高度将被添加到身体衬垫中,将内容按原样向下推。
这样,当菜单将其位置更改为固定和反向时,您还可以获得更平滑的滚动。