0

好的,这是我目前面临的问题,当锚链接具有名称或 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);  
});

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

4

2 回答 2

1

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

$(window).bind("load", function() {
   var urlHash = window.location.href.split("#")[1];
   $('html,body').animate({scrollTop:$('.'+urlHash+', #'+urlHash+', [name='+urlHash+']').first().offset().top}, 4000);
});
于 2012-05-25T22:45:41.733 回答
0

寻找id

scrollTop:$('#'+urlHash);

要查找名称:

scrollTop:$('[name='+urlHash+']');
于 2012-05-25T22:32:55.827 回答