Jquery平滑滚动偏移量
我正在制作一个单页站点,中间顶部有粘性导航,宽度约为1000px,高度约为20-25px,现在我还包括了平滑滚动功能,但我的问题是,每当页面滚动到它的活动页面时,标题隐藏在粘性导航下,我如何获得粘性导航底部的偏移量?谢谢 这是js代码顺便说一下:Jquery平滑滚动偏移量,jquery,smooth-scrolling,Jquery,Smooth Scrolling,我正在制作一个单页站点,中间顶部有粘性导航,宽度约为1000px,高度约为20-25px,现在我还包括了平滑滚动功能,但我的问题是,每当页面滚动到它的活动页面时,标题隐藏在粘性导航下,我如何获得粘性导航底部的偏移量?谢谢 这是js代码顺便说一下: $('a').click(function(e) { var target = $(this).attr('href'); e.preventDefault(); $('html,body').anim
$('a').click(function(e) {
var target = $(this).attr('href');
e.preventDefault();
$('html,body').animate({
scrollTop: $(target).offset().top
}, 800, 'easeInOutCirc');
});
jQuery的.position()
方法将提供元素相对于页面的顶部和左侧偏移量。因此,您只需将粘性导航的.outerHeight()
添加到它的.position().top
值
下面是一个例子:
当您在页面中向下滚动时,您将看到其位置得到更新。保持当前代码不变并将其添加到网站顶部的最简单方法是在.top之后添加所需的偏移值,如下所示:
$('a').click(function(e) {
var target = $(this).attr('href');
e.preventDefault();
$('html,body').animate({
scrollTop: $(target).offset().top - 20
}, 800, 'easeInOutCirc');
});
希望这个答案没有上一个那么复杂。:) 参见
方法:我们使用document.getElementById('header')获得固定导航的高度
并将滚动条偏移到此值
var jump=function(e){
e.preventDefault(); //prevent "hard" jump
var target = $(this).attr("href"); //get the target
//perform animated scrolling
$('html,body').animate(
{
scrollTop: $(target).offset().top - document.getElementById('header').offsetHeight - 5 //get top-position of target-element and set it as scroll target
},1000,function() //scrolldelay: 1 seconds
{
location.hash = target; //attach the hash (#jumptarget) to the pageurl
});
}
$(document).ready(function()
{
$('a[href*="#"]').bind("click", jump); //get all hrefs
return false;
});
附言:
- 它包括一个不错的头部和目标之间的5像素差
- 滚动效果不硬,比较平滑;平滑滚动