Jquery更改位置然后滚动到元素

当我在index.php上并按下主页按钮时,它向下滚动到元素。 但是,当我不在index.php上并按下相同的按钮时,我想更改URL位置,然后滚动到该元素。 这是我尝试的方式:

$('.home').on('click', function (event) { // If location is index.php do this: if (location.href.indexOf("/index.php") > -1) { $('html, body').animate({ scrollTop: $("#anotherelement").offset().top }, 1000); // If location is not index.php do this: } else { window.location = "index.php"; $('html, body').animate({ scrollTop: $("#anotherelement").offset().top }, 1000); } }); 

它只是更改了url但是当我不在index.php上时它不会滚动到元素

使用hash而不是使用jQuery滚动到某个元素。

  1. 将哈希添加到URL http://www.myurl.com/index.php#anotherelement
  2. 在要在页面加载时滚动的页面中添加具有相同id(本例中为anotherelement )的元素。

请将您的代码更改为

 $('.home').on('click', function (event) { if (location.href.indexOf("/index.php") > -1) { $('html, body').animate({ scrollTop: $("#anotherelement").offset().top }, 1000); } else { window.location = "index.php#anotherelement"; } });