我想用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';
};
如果有任何帮助,我将不胜感激。谢谢
您不能设置一个简单的变量并将其声明为全局变量或类似的东西,因为所有这些都将在页面加载时被覆盖。但你可以:
- 设置cookie,并在您想要滚动的页面上对此做出反应(https://github.com/carhartl/jquery-cookie)
- 如果你控制了另一个链接,你可以相应地更改它。一个不错的选择是设置一个锚,然后它会自动转到自己的位置。或者,您可以设置一个参数,然后从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');
}
});