我正在尝试查看是否可以使用这样的简单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>
...然后,当 new 页面加载某种简单的JQuery脚本时,让它向下滚动到ID #location1
?或者,如果这是使用scrollTo插件可以实现的,那我该怎么做呢?
问题是pageXXX上存在链接,要滚动到的ID在所有页面上,即。 pageXXX,page1,page2,page3等......理想情况下,如果还有一种方法可以从URL中删除哈希标记和标识符,那也很棒,但此刻只需将它平滑地向下滚动到新页面上的ID就可以了。
答案 0 :(得分:7)
你可以添加一个setTimeout,等待一点然后向下滚动吗?
function goToByScroll(id){
$('html,body').animate({scrollTop: $("#"+id).offset().top},'slow');
}
var hash = window.location.hash;
setTimeout(function(){
goToByScroll(hash);
},2000);
答案 1 :(得分: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
在这里,您可以防止页面在任何地方乱码,您可以执行后续步骤(将哈希放在动画滚动功能中),而不必担心,如果它的触发速度足够快。