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

Jquery change location then scroll to element

当我在 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

上时它不会滚动到元素

使用散列而不是使用 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";
    }
});