更改位置后,滚动到带有动画的元素

时间:2018-11-21 10:13:41

标签: jquery

当我单击<a id="cityAaaHref">Link</a>时,我想更改位置,并用动画滚动到该部分。

这是我的代码

$(document).ready(function () {
$('#cityAaaHref').click(function () {
    var selector = $(this).data('selector');
    if (window.location.pathname == "/aaa/") {
        $('html, body').animate({
            scrollTop: $("#" + selector).offset().top
        }, 1000);
    }else{
        window.location = "../aaa#city";
        //how to here set animation after location change
    }
})

IF语句完全可以满足我的需要 唯一的问题是ELSE状态,在这里我更改位置并显示此部分,但是我想更改位置然后在该部分显示滚动动画。

希望您能理解。 thnx

1 个答案:

答案 0 :(得分:1)

aaa 页面上,您可以执行以下逻辑:

$(document).ready(function() {
    if (window.location.hash === "#city") {
        //do something
    }
});

如果哈希值为"#city"不一定意味着要执行该动画,则可以在代码中根据需要将动画标记为localStorage

$(document).ready(function () {
    $('#cityAaaHref').click(function () {
        var selector = $(this).data('selector');
        if (window.location.pathname == "/aaa/") {
            $('html, body').animate({
                scrollTop: $("#" + selector).offset().top
            }, 1000);
        }else{
            localStorage.setItem('aaa', 'animation');
            window.location = "../aaa#city";
            //how to here set animation after location change
        }
    });
});

,然后在另一页上:

$(document).ready(function() {
    if (localStorage.getItem('aaa') === 'animation') {
        //do something
    }
});