javascript - anchor 慢速滚动固定标题

标签 javascript jquery html css

我想为页面上的 anchor 使用平滑滚动。 因此我使用以下代码:

<script>
$(document).on('click', 'a', function(event){
    event.preventDefault();

    $('html, body').animate({
        scrollTop: $( $.attr(this, 'href') ).offset().top
    }, 500);
});
</script>

唯一的问题是我有一个固定的标题,高度为 88px。因此,当单击 anchor 时,它当前会滚动到很远。

如何扩展我的代码以使其正常工作?

最佳答案

如果您知道您的固定标题始终的高度为 88 像素,您只需将该值添加到最终滚动位置以为其腾出空间:)

$('html, body').animate({
    scrollTop: $( $.attr(this, 'href') ).offset().top + 88
}, 500);

如果固定标题高度可能会改变,您需要检查它的 outerHeight 并将其添加到偏移量。假设固定 header 的 jQuery 对象存储为 $fixedHeader:

$('html, body').animate({
    scrollTop: $( $.attr(this, 'href') ).offset().top + $fixedHeader.outerHeight()
}, 500);

关于javascript - anchor 慢速滚动固定标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45689274/

相关文章:

javascript - 鼠标悬停在图像上时按钮隐藏

javascript - 已访问的菜单选项未突出显示

jquery - 如何通过任何平行边将子 div 放入父 div 中,并保持调整大小的比例?

html - 能不能把 DropDownList 控件在 IE10 中的显示样式改成 IE9 一样?

javascript - React js删除处理程序删除数组中的第一个索引

javascript - Firefox 的 MediaRecorder 接口(interface)每两秒只提供一次新的视频数据

JavaScript 继承与 Array 对象(需要解释才能理解)

javascript - 在 SharePoint 上使用 JQuery。脚本在两种浏览器上的 Fiddle 中都可以工作,但在 IE 的页面上不起作用

javascript - 如何取消点击悬停

html - 自定义元素的 CSS 属性不会继承给子元素