2

我想用 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';
};

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

4

3 回答 3

2

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

  1. 设置一个 cookie,并在要滚动的页面上对它做出反应(https://github.com/carhartl/jquery-cookie
  2. 如果您控制其他链接,则可以相应地更改它。一个不错的选择是设置一个锚点,然后它会自动转到它的位置。或者您可以设置一个参数并从 window.location.pathname 获取该参数
于 2013-07-06T08:13:12.120 回答
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');
    }
});
于 2013-07-06T08:21:43.413 回答
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"和 nosmth.click()

于 2013-07-06T10:17:15.267 回答