2016-07-06 7 views
0

Ich versuche, mehrere Animationen auf einen Link zu setzen (die Animation unterscheidet sich je nachdem, von welcher Seite Sie kommen). Die folgende Seite hat ein gutes Beispiel dafür, was ich vorhabe. Wenn Sie auf der Startseite auf die Arbeitsseite klicken, wird die Arbeitsseite von rechts eingeblendet. Wenn Sie von der About-Seite auf die Arbeitsseite klicken, wird die Arbeitsseite von links eingezogen.Wie kann ich je nach dem zuletzt besuchten Link unterschiedliche Seitenanimationen auslösen?

http://howarkitekter.se/work/

Ich kann nicht scheinen, um herauszufinden, wie dies getan wurde. Hilfe bitte!

Antwort

0

Es gibt verschiedene Ansätze dazu, zum Beispiel JavaScript zu verwenden. In JavaScript, setzen Sie ein Wörterbuch auf, die die Seiten Titel in Ihrer Navigationsleiste enthält sowie eine numerische Seite ID

var pages = { 
    "Home": 1, "Work": 2, "About": 3, "Contact": 4 
} 

Da in der Regel wird ein Benutzer auf der Startseite beginnt, werden wir den Standardstrom eingestellt Seite „Home“ (dies könnte allerdings bei Bedarf angepasst werden):

//setting the default currentPage to "Home" 
var currentPage = "Home"; 

Dann können Sie einen onClick/onTouchEnd Event-Listener zu jedem Link hinzufügen, die changePage(this.innerHTML) eine Funktion aufruft. this.innerHTML gibt den Namen der angeklickten Site zurück, z. "Arbeiten", wenn Sie auf den entsprechenden Link klicken.

function changePage(title) { 

    if(pages[title] > pages[currentPage]) { 

     //if the ID of the target page is higher than the current page's ID, it is at 
     //the right, thus it should animate in from the right side 

     transitionPage(title, "fromRight"); 
    } 

    else if(pages[title] < pages[currentPage]) { 
     transitionPage(title, "fromLeft"); 
    } 

    //set the currentPage to the page you just transitioned to 
    currentPage = title; 

} 

Sie können die „fromRight“/„fromLeft“ mit Boolesche Werte ersetzen, um es sauberer zu machen, aber zur besseren Lesbarkeit, ich habe es so. In der transitionPage(targetPage, direction) Funktion können Sie Ihren Code angeben, um den Übergang zu ermöglichen, aber ich werde das hier weglassen, da Sie anscheinend darauf konzentriert sind, wie Sie zwei verschiedene mögliche Aktionen erhalten, die demselben Link zugewiesen sind. Hoffe, ich könnte helfen!


By the way, die Links, die Sie technisch in Ihrem Navigations haben brauchen keine eigentlichen HTML-Ankerelemente (<a>), aber für die Benutzerfreundlichkeit zu sein, und diejenigen, die JS ausgeschaltet in ihrem Browser haben, ist es besser um auch tatsächlich funktionierende Links zu haben, und verwenden Sie die Methode preventDefault von JS, um zu verhindern, dass der Link eine neue Seite lädt.

Verwandte Themen