如果从链接单击页面,如何自动滚动

时间:2013-07-06 08:04:47

标签: jquery scroll click global-variables

我想用jQuery向下滚动页面,但只有在从另一个页面点击此页面的链接时才会这样。两个页面都在同一目录中。

这是要滚动的页面的代码:

var trigger;
$(document).ready(function(){
if (trigger == 'on') {
$('html, body').not('#jens').animate({
        scrollTop: ($('#geschaeftsstelle').offset().top)
    }, 500, 'swing' );
    } else {
        return false};
    });

但是现在,如果链接页面上的clickevent发生,我不知道如何更改'触发器':

$('#kontakt').click(function(){
trigger = 'on';
};

我将不胜感激任何帮助。谢谢!

3 个答案:

答案 0 :(得分:2)

你不能设置一个简单的变量并将其声明为全局或类似的东西,因为所有这些都将在页面加载时被覆盖。但你可以:

  1. 设置一个Cookie,然后对您要滚动的页面(https://github.com/carhartl/jquery-cookie)做出反应(<{3}})
  2. 如果您控制其他链接,则可以相应地进行更改。一个不错的选择可能是设置锚点,然后它会自动转到它的位置。或者您可以设置一个参数并从window.location.pathname
  3. 获取该参数

答案 1 :(得分:0)

您可以使用document.referrer从其他页面检查referrer url

试试这个:

$(document).ready(function() {
    if (document.referrer.indexOf('url-you-want-test') !== -1) { // replace url-you-want-test with url you want to test abosulte url or file-name
        $('html, body').not('#jens').animate({
            scrollTop: ($('#geschaeftsstelle').offset().top)
        }, 500, 'swing');
    }
});

答案 2 :(得分:0)

$(document).ready(function(){
  if (window.location.hash) {
    $('html, body').not('#jens').animate({
        scrollTop: ($(window.location.hash).offset().top)
    }, 500, 'swing' );
    } else {
        return false
    };
 });

不要忘记使用简单的链接,例如href="path-to-your-page.html#geschaeftsstelle"smth.click()