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



我想用jQuery向下滚动一个页面,但前提是从另一个页面点击指向该页面的链接。两个页面都在同一目录中。

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

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

但现在,如果链接页面上发生点击事件,我不知道如何更改"触发器":

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

如果有任何帮助,我将不胜感激。谢谢

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

  1. 设置cookie,并在您想要滚动的页面上对此做出反应(https://github.com/carhartl/jquery-cookie)
  2. 如果你控制了另一个链接,你可以相应地更改它。一个不错的选择是设置一个锚,然后它会自动转到自己的位置。或者,您可以设置一个参数,然后从window.location.pathname中获取该参数
$(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() 这样的简单链接

您可以使用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');
    }
});

相关内容

  • 没有找到相关文章