使用标题偏移滚动到锚定onload

时间:2015-12-09 14:20:23

标签: jquery anchor offset scrollto fragment-identifier

我在我的网站上使用了几个div的锚点。 当我的网页加载时,我的网址末尾有#,如下所示:

http://www.website.com/projects#third

我也有一个固定的标题,高度为100px。

我正在使用scrollto插件。

我要做的是,当我的页面加载时,它会滚动到URL的#div,并且标题高度偏移。

以下是我尝试使用jQuery的内容,但它无效。

$(window).load(function() {

    var hashVal = window.location.hash;
    var headerheight = $("header").height();
    $('body').scrollTo(hashVal, { duration: 'slow', offsetTop: headerheight});

});

无法弄清楚我做错了什么。

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

$(document).ready(function(){
     $('body').scrollTop($('body').scrollTop() + $("header").height());
});

答案 1 :(得分:0)

以下jsFiddle工作正常:http://jsfiddle.net/gp5kev0k/2/

$(window).load(function(){
  var hashVal = "#scrollto";//cannot test this in jsfiddle
  var headerheight = $("#header").height();
  console.log(hashVal)
  console.log(headerheight)
  $('body').scrollTo(hashVal,{duration:'slow', offsetTop : headerheight});
});

不同之处在于:
我使用divid=header,可能你也这样做,但是使用$("header").height();计算<header></header>的高度(如果你有这样一个元素,那就好了...... )

我将hashval设置为静态字符串,因为window.location.hash在jsFiddle中不起作用。添加一些console.log命令以查看这些部分是否适用于您的代码。