2016-11-05 9 views
0

Ich möchte meine Seite animieren, nachdem die Seite mit Jquery umgeleitet wurde, das Problem mit meinem Code ist, dass es nur den Animationscode umleitet, aber ignoriert, wie kann ich dieses Problem beheben?Jquery - animieren nach Umleitung

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

(Die Animation rollt nur mit fließendem Übergang zu einem Anker nach unten.)

+0

Wenn Sie umleiten, stoppen alle Skripts auf der aktuellen Seite. – Barmar

+0

Die Animation muss auf der neuen Seite ausgeführt werden. Ihr aktuelles Skript kann die Zielseite nicht ändern. – Barmar

+0

@Barmar Was ist die Lösung, damit es funktioniert, sobald ich auf der umgeleiteten Seite bin? – Lindow

Antwort

0

Wenn Sie umleiten, wird Ihre aktuelle Skript stoppen. Wenn du es wirklich tust, denke ich, dass es einen Weg gibt, ich empfehle es NICHT, aber es wird den Job machen. Bevor Sie auf die andere Seite umleiten; Ich nehme an, die neue Seite ist immer noch in der gleichen App, nicht eine völlig andere Website), Sie können eine localStorage-Variable festlegen. Dann am Anfang der JS-Datei der Seite, zu der Sie umleiten, überprüfen Sie, ob die localStorage-Variable, die Sie in der früheren Ansicht festgelegt haben, dort ist, wenn dies der Fall ist, führen Sie die Animation aus, und entfernen Sie dann die localStorage-Variable.

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