如何:检查是否在页面上,如果没有重定向,然后滚动

时间:2011-10-03 15:08:29

标签: javascript jquery scroll var

我正在尝试最后一件事:

我在主导航中有一个博客链接,当您点击它时,它会向下滚动到博客。但是,当我在任何其他页面上时,这种逻辑显然不起作用。首先应首先转到根页然后滚动。 I've got the opposite thing working here,但尚未完成此任务。

任何帮助?

我正在成功使用scrollTo:

$(".scroll_to_top").click(function() {$.scrollTo($("body").position().top, 300)});

博客部分尚未作出反应:

if(window.location.hash === 'blog') {
    $.scrollTo($("#blog").position().top, 300);
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您可以在URL的末尾使用基本哈希(#)来自动滚动带有哈希中指定的id的元素(即http://example.com#blog)。这将是最简单的解决方案,不需要Javascript。

但是,如果要滚动到的元素没有可以使用的id(并且您无法修改HTML,那么)或者您想要滚动动画您可以在URL中使用哈希值,而不仅仅是跳过相关元素,并执行以下操作:

//URL is http://example.com#blog

if(window.location.hash === 'blog'){
    //scroll
}

最后,如果你真的讨厌在某些原因下在网址中添加哈希的想法,你可以拦截<a>上的点击,创建一个cookie,重定向到所需的页面,然后拥有该页面检查cookie是否存在。