Jquery - 重定向后的动画

时间:2016-11-05 20:25:49

标签: javascript jquery

我希望在使用Jquery重定向页面后为我的页面设置动画,我的代码的问题是它只重定向但忽略了动画代码,我该如何解决这个问题?

  $("#menu a:first-child").click(function() {
      window.location.href = "https://www.mysite/blog";
      $('html,body').animate({
          scrollTop: $("#mainwrapper").offset().top - 70},
          'slow');
  });

(动画只会向下滚动到具有流体过渡的锚点。)

1 个答案:

答案 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")
      }
    );
  }