我正在此站点上工作:Website
这是一页的网站,在这里我使用scrollTo(id)在此处查看代码:
function scrollTo(id) {
$('html, body').animate({scrollTop: $(id).offset().top - 50}, 1000);
}
问题是,当您在首页顶部尝试按链接时,偏移量不起作用,并使您几乎位于您要查找的部分(页面)下方。
但是,如果滚动到页面底部,然后按一个链接,则偏移量就像一个超级按钮一样工作,它使您位于所要求的每个部分的顶部。
您可能会查看我的源代码,我有一个js.js文件,该文件应显示我正在使用的所有功能,也许还有一些我没有注意到的错误。
确实需要您的帮助:)!希望你能看到我在做什么错。
最佳答案
我认为是因为您的菜单。
当您位于页面顶部时,菜单处于静态位置,witch也意味着菜单的高度已添加到像素数中,以供浏览器滚动到。
但是,当浏览器向下滚动到该位置时,菜单将更改为固定位置,这意味着从您要滚动到的元素的顶部偏移中减去菜单的高度。
就代码而言,我只是将这小段CSS添加到主体中。
body.tiny { padding-top: 60px; }
假设60像素是菜单的高度。然后,当菜单更改为固定位置时,高度将被添加到正文填充中,将内容像以前一样向下推。
这样,当菜单将其位置更改为固定和反向时,您还将获得更平滑的滚动。
关于jquery - 函数scrollTo(id)中jquery偏移量的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26117975/