Wenn Sie auf einen Breadcrumb-Link in GitHub klicken, wird der Verzeichnisansichtsbereich in das Unterverzeichnis verschoben. Was ist der beste Weg, um diesen Effekt zu erzielen? Ich benutze asp.net mvc, jquery, jquery ui und ein jquery Layout-Plugin (http://layout.jquery-dev.net/ui layout) Shoud ich das Layout-Plugin aufgeben?So erstellen Sie den Breadcrumb und den Effekt "Verschieben" ähnlich wie Github
Antwort
Nun, Sie können mit der unique url pattern beginnen. Um diesen Sound ein wenig vertraut zu machen, lassen Sie sich zum Beispiel twitter nehmen:
#searching "stackoverflow"
https://twitter.com/#!/search/stackoverflow
der Hash-Teil ist die einer nach dem (einschließlich) „#“. mit window.location.hash
bekommt es für uns. dann string.replace()
#!/
entfernen verwenden und am Ende mit:
search/stackoverflow
dann, wenn wir diesen Wert als Variable speichern und tun string.split('/')
, die den Wert pro /
aufgeteilt ist, sind wir mit diesem Retour:
array = ['search','stackoverflow'];
Jetzt sieht es eher wie eine Brotkrume, die wir verwenden können, um zu bauen. Wenn Sie in Twitter wären, wäre es eher wie folgt:
site/search/stackoverflow
und für jeden Brotkrümel Link, einfach weiter anhängen. wenn Sie Urls segmentiert haben, ist es ziemlich einfach, die Links zu bauen:
site = mysite.com
site/search = mysite.com/search
site/search/stackoverflow = mysite.com/search/stackoverflow
für den gleitenden Teil, müssen Sie die „onhashchange“ Ereignis aufzunehmen, die die Änderungen auf den Wert des Hash erkennt. Das Ereignis tritt immer auf, wenn Sie auf einen Link mit der Nummer href="#somevalue"
klicken. Beachten Sie, dass der href "#" hat. Sie bemerken auch, dass die Seite nirgendwohin geht (das ist der Punkt, an dem AJAX Magie später zum Einsatz kommt).
für moderne Browser, Sie hashchange mit jQuery oder schlicht JS erkennen kann:
$(window).on('hashchange',function(){
//do whatever you want when the hash changes
});
//or
window.onhashchange = function(){
//do whatever you want when the hash changes
}
für ältere Browser, müssen Sie einen Timer einstellen, der den vorherigen vs aktuellen Wert des window.location.hash
(function timer(prevHash){
var currentHash = window.location.hash;
if(prevHash !== currentHash){
//do whatever you want when the hash changes
}
setTimeout(function(){
timer(currentHash);
},1000);
}();
prüft
Der gleitende Effekt kann mit jQuery .animate()
erreicht werden. Sie können die neue Seite über AJAX laden (abhängig von der Seite, die Sie mit dem analysierten Hash ermittelt haben), die geladene Seite anhängen, den Inhalt verschieben und boomen! du bist fertig. Es ist ziemlich einfach für jeden zu machen, wenn sie die Gänge kennen, die die Uhr drehen lassen.
- 1. So überwinden Sie den Effekt der Navigationsleiste
- 2. So verschieben Sie den UITextView-Korrekturvorschlag über den Text
- 3. So erstellen Sie den Dateiwähler
- 4. Wie messen Sie den Effekt der Falschvorhersage?
- 5. Verschieben Sie den Kalender vor den Menüleisten
- 6. So beseitigen Sie den jQuery Tooltip-Fade-Effekt
- 7. Zipper: Mapping über den letzten Breadcrumb
- 8. Twitter Bootstrap modal: So entfernen Sie den Slide-down-Effekt
- 9. So verbinden Sie den github-Desktop mit IBM hub.jazz.net
- 10. So erstellen Benutzerbenachrichtigung Nachricht ähnlich wie JGrowl
- 11. So erstellen Sie ein Layout ähnlich dem Bild in den Link in Android
- 12. So zeigen Sie Breadcrumb mit Angularjs
- 13. Verschieben Sie ein Bild hin und her Effekt mit jQuery
- 14. So verschieben Sie ANDROID_SDK_HOME
- 15. So verschieben Sie den HDFS-Namenknoten auf einen neuen Host
- 16. Entfernen Sie den Revealize-Effekt bei Klick
- 17. So finden Sie den Kollisionsort
- 18. Wie funktioniert der Parallax-Effekt ähnlich wie tokoliolab.it?
- 19. So protokollieren Sie den Puppet-Agent und den Master
- 20. So ändern Sie den Balkendiagrammstil
- 21. Fade-Effekt zwischen den Layouts
- 22. setuid hat den gleichen Effekt wie sudo?
- 23. Verschieben Sie eine Datei in einen neuen Ordner und behalten Sie den Git-Verlauf bei.
- 24. Entfernen Sie den Ereignis-Listener und verschieben Sie den Movieclip an die Position
- 25. in den Papierkorb verschieben und entfernen Sie die Referenz
- 26. So erstellen Sie einen leuchtenden Effekt mit HTML 5
- 27. So automatisieren Sie den Installer-Test
- 28. Wege, um den Inner-Plattform-Effekt zu überwinden und dennoch hochgradig angepasste Web-Apps zu erstellen?
- 29. WPF - Wie kann ich den Effekt "this.close()" entfernen?
- 30. Erstellen Sie zuerst den Zuordnungscode
möglich duplicate of [Wie ändert github die URL, ohne eine Seite neu zu laden?] (Http://stackoverflow.com/questions/7591087/how-does-github-change-url-without-reloading-a-page) –