1

我试图看看是否有可能有一些简单的 HTML 标记,如下所示:

<a href="www.mysite.com/pageXXX#location1"></a>
<a href="www.mysite.com/page1#location1"></a>
<a href="www.mysite.com/page2#location1"></a>
<a href="www.mysite.com/page3#location1"></a>

...然后,当使用某种简单的 JQuery 脚本加载#location1页面时,它是否向下滚动到 ID?或者,如果这是可以通过 scrollTo 插件实现的,我该怎么做呢?

问题是该链接存在于 pageXXX 上,并且要滚动到的 ID 位于所有页面上,即。pageXXX、page1、page2、page3 等......理想情况下,如果还有一种方法可以从 URL 中删除哈希标记和标识符,那也很好,但目前只需让它顺利向下滚动到新页面上的 ID 就是我所追求的。

4

2 回答 2

7

您可以添加一个 setTimeout 让它稍等片刻然后向下滚动?

function goToByScroll(id){
        $('html,body').animate({scrollTop: $("#"+id).offset().top},'slow');
}
var hash = window.location.hash;

setTimeout(function(){
      goToByScroll(hash);
},2000);
于 2011-03-03T09:36:32.887 回答
0

替代:

代替

<a href="www.mysite.com/pageXXX#location1"></a>

尝试

<a href="www.mysite.com/pageXXX?location1"></a>

您可以通过这种方式将哈希放入链接中:

var nothash = window.location.search;
var hash = nothash.substring(1);

参考:https ://developer.mozilla.org/en/DOM/window.location

在这里,您可以防止页面在任何地方跳转,并且您可以执行后续步骤(将哈希放入动画滚动函数中)而无需担心它是否足够快地触发。

于 2011-07-05T13:09:22.287 回答