Jquery外部页面平滑滚动

时间:2012-05-25 22:29:31

标签: javascript jquery

好的,这是我目前面临的问题,当锚链接有名称或ID时,如何让jquery平滑滚动到锚链接。

<a name="scrollhere"> Smooth Scroll here on page load </a>
<a id="scrollhere"> Smooth Scroll here on page load </a>

因此,无论锚链接表示什么,它都应该在页面加载后平滑滚动。 这是一个人给我的代码。但唯一的问题是这个代码只有在这是secnario

时才有效
<a class="scrollhere"> Smooth Scroll here on page load </a>

代码仅在锚链接具有我想要平滑滚动的类的位置时才有效。但我希望它是一个名字或一个id。

$(window).bind("load", function() {
       var urlHash = window.location.href.split("#")[1];
       $('html,body').animate({scrollTop:$('.'+urlHash).offset().top}, 4000);  
});

告诉我如何更改此代码以执行我想要的操作

2 个答案:

答案 0 :(得分:1)

您可以搜索您想要匹配的每个区域并返回第一个匹配项,如下所示:

$(window).bind("load", function() {
   var urlHash = window.location.href.split("#")[1];
   $('html,body').animate({scrollTop:$('.'+urlHash+', #'+urlHash+', [name='+urlHash+']').first().offset().top}, 4000);
});

答案 1 :(得分:0)

寻找id

scrollTop:$('#'+urlHash);

寻找名字:

scrollTop:$('[name='+urlHash+']');