2016-11-05 6 views
0

Jqueryを使用してページをリダイレクトした後に私のページをアニメートしたいのですが、私のコードの問題はリダイレクトだけですがアニメーションコードを無視することです。Jquery - リダイレクト後にアニメ化する

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

(アニメーションは単に流体遷移にアンカーまでスクロールします。)

+0

リダイレクトすると、現在のページのすべてのスクリプトが停止します。 – Barmar

+0

アニメーションは新しいページで実行する必要がありますが、現在のスクリプトはリンク先ページを変更できません。 – Barmar

+0

@Barmarリダイレクトされたページに入ったら、それを動作させるにはどうすればいいですか? – Lindow

答えて

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") 
     } 
    ); 
    } 
関連する問題