jquery滚动到不太顶部

标签 jquery scroll

我已经知道:

$(body).animate({scrollTop: $("#id").offset().top}, 'slow');

但我遇到了一个奇怪的情况,我正在处理的这个特定网站有一个固定的标题/横幅(200 像素高),当页面滚动时,该标题/横幅仍然保留在原处。如果我使用上面的例程,它实际上会将元素滚动到窗口顶部,但前 200px 的值将被标题/横幅隐藏(我不喜欢固定标题/横幅,但我目前不允许更改)。

所以,问题是:如何滚动到 top-200px 以便该元素滚动到标题/横幅的正下方?

预先感谢您针对此问题提供的帮助。

最佳答案

问题是,使用position:fixed - 标题从页面流中删除,并且页面的其余部分呈现为好像不存在一样 - 因此滚动到元素的量将与元素的高度相同。 header 。

解决方案是,当您将标题的位置设置为固定时(如果它在滚动位置上发生变化),您还可以根据标题的高度设置正文的 padding-top 。 如果标题始终固定在屏幕顶部并且不会根据滚动部分而变化 - 那么只需将 padding-top 直接应用于正文即可。

因此,如果标题高度为 200px - 只需应用

 body {padding-top: 200px} 

当标题应用了position:fixed 时。

当标题返回到位置:静态时,不要忘记删除相同的填充。 - 假设应用粘性类时附加了一个滚动位置。

完成这一切的最佳方法是拥有一个类(例如 header-offset),并在应用position:fixed 时将其应用于正文。

原来如此

.header-offset{padding-top: 200px; // or whatever height your header is}

关于jquery滚动到不太顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46260938/

相关文章:

jquery - 如何在 jQuery 中测试选择器是否有效

javascript - 如何在不实际滚动的情况下确定滚动方向

html - 在 Y 轴上固定一个元素,但在 x 轴上滚动页面?

javascript - 捕获 "scroll down"事件?

android - 如何在 Android 中获得可滚动的 div

javascript - Google map - 模态窗口 (Wordpress ACF)

jquery - 窗口关闭时,弹出窗口中的Youtube视频不会停止播放

javascript - JQUERY模态框确认表单提交

jquery - 禁用 TextArea 水平滚动 Jquery

javascript - 是否可以使用 jQuery 径向淡入?