我希望在使用Jquery重定向页面后为我的页面设置动画,我的代码的问题是它只重定向但忽略了动画代码,我该如何解决这个问题?
$("#menu a:first-child").click(function() {
window.location.href = "https://www.mysite/blog";
$('html,body').animate({
scrollTop: $("#mainwrapper").offset().top - 70},
'slow');
});
(动画只会向下滚动到具有流体过渡的锚点。)
答案 0 :(得分:0)
重定向时,您当前的脚本将停止。如果你真的应该这样做,我认为有一种方法,我不推荐它,但它会完成这项工作。 在重定向到其他页面之前;我假设新页面仍在同一个应用程序中,而不是完全不同的网站),您可以设置localStorage变量。然后在您重定向到的页面的JS文件的开头,检查您在先前视图中设置的localStorage变量是否存在,如果是,则执行动画,然后删除该localStorage变量。
// js file of current view
$("#menu a:first-child").click(function() {
localStorage.setItem("animation", true)
window.location.href = "https://www.mysite/blog";
});
// js file of redirected view
if (localStorage.animation && JSON.parse(localStorage.animation)) {
$('html,body').animate({
scrollTop: $("#mainwrapper").offset().top - 70},
'slow', 'linear', function() {
localStorage.removeItem("animation")
}
);
}