Jquery 平滑滚动偏移
我正在制作一个单页网站,其中心顶部有粘性导航,宽度约为 1000px,高度约为 20-25px,现在我还包括平滑滚动功能,但我的问题是每当页面滚动到其活动页面时,标题隐藏在粘性导航下方,如何获取粘性导航底部的偏移量?谢谢。
这是js代码顺便说一句:
$('a').click(function(e) {
var target = $(this).attr('href');
e.preventDefault();
$('html,body').animate({
scrollTop: $(target).offset().top
}, 800, 'easeInOutCirc');
});
I'm making a one page site with sticky navigation on center top with width at about 1000px and height of about 20-25px, now i also included a smooth scroll function but my problem is whenever the page scrolls to it's active page, the title hid under the sticky nav, how do i get the offset of the bottom of the sticky navigation? Thanks.
This is the js code btw:
$('a').click(function(e) {
var target = $(this).attr('href');
e.preventDefault();
$('html,body').animate({
scrollTop: $(target).offset().top
}, 800, 'easeInOutCirc');
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
保持当前代码不变并将偏移添加到网站顶部的最简单方法是在 .top 之后添加所需的偏移值,如下所示:
希望这个答案比上一个答案简单。 :)
The easiest way to keep your current code as it is, and add that off-set to the top of your website, is by adding the needed offset value after the .top, like so:
Hope this answer is less complicated that the last one. :)
jQuery 的
.position()
方法将为您提供元素相对于页面的顶部和左侧偏移量。因此,您只需将粘性导航的.outerHeight()
添加到其.position().top
值即可。这是一个示例: http://jsfiddle.net/NUfaZ/1/
当您在页面,您会看到它的位置已更新。
jQuery's
.position()
method will give you the top and left offsets of the element in relation to the page. So you would just need to add the.outerHeight()
of the sticky navigation to it's.position().top
value.Here's an example: http://jsfiddle.net/NUfaZ/1/
As you scroll down in the page, you'll see it's position get updated.
参考https://codepen.io/pikeshmn/pen/mMxEdZ
做法: 我们使用 document.getElementById('header').offsetHeight 获取固定导航的高度
并将滚动偏移到该值。
PS:
Refer to https://codepen.io/pikeshmn/pen/mMxEdZ
Approach: We get the height of fixed nav using document.getElementById('header').offsetHeight
And offset the scroll to this value.
P.S: