2016-12-23 2 views
0

Also meine Website enthält eine zweiteilige Navigation, beide Punkte sind Anker auf der Hauptseite platziert. Ich habe hinzugefügt Auf dieser Seite gibt es andere Links, die zu Unterwebsites führen. Jetzt fällt es mir schwer, die gleichen Navigationspunkte nur auf den Unterwebsites zu bekommen, um die Anker zu laden, wenn ich zur Hauptstelle zurückkehre, wo sie ursprünglich platziert wurden. Versucht mehrere Methoden im Internet gefunden, aber nichts davon schien zu funktionieren.Anker lädt nicht auf neue Seite

Ich fügte auch ein reibungsloses Scrollen mit einigen jquery im Internet gefunden, auch versucht, die Standardlinie zu verhindern.

Dies ist meine Seite http://stefangloeggl.com, die Unterseiten können durch Klicken auf eines der ersten Bilder erreicht werden.

Mein Markup sieht in etwa so aus.

<a href="index.php#work">Work</a> 
<a href="index.php#about">About</a> 

<div name="work" id="work"> 
Work 
</div> 

<div name="about" id="about"> 
Biography 
</div> 

Würde wirklich einige Hilfe zu diesem einen schätzen.

+0

Bitte erstellen JSFiddle (https://jsfiddle.net/), wo jeder kann den Fehler reproduzieren. Dies erhöht Ihre Chancen, Hilfe zu erhalten, erheblich. – tiblu

+0

Ich würde eine erstellen, ich weiß nur nicht, eine Option zwei erstellen zwei HTML-Seiten, die ich das Problem demonstrieren müsste. – nafets97

Antwort

0

Es ist ziemlich seltsam Struktur auf Ihrer Seite. Ihre Seitenmarkierung scheint Körpergröße/-breite 100% zu haben und Ihre Anker sind ineinander angeordnet. Die beste Lösung besteht darin, ein sauberes Markup von Grund auf neu zu erstellen.

Schnelle, aber schmutzige Lösung ist window.location.hash Überprüfung auf Dokument bereit, dann aktivieren Sie Ihre glatte Bildlauf.

So:

$(document).ready(function(){ 
if (window.location.hash.length>1) { 
    $('html, body').animate({ 
     scrollTop: $(window.location.hash).offset().top 
    }); 
} 
}); 
+0

Danke für Ihre Hilfe. Das Problem wurde jetzt mit dem zweiten Anker innerhalb des anderen behoben. Verzeihen Sie meine Unerfahrenheit, aber wie kann ich Ihr Skript auf Knopfdruck auslösen, das auf einer anderen Seite passiert? (Ich meine, wenn das a-Tag auf Seite 1 gedrückt wird, löst es das gewählte Skript auf Seite 2 aus?) – nafets97

+0

Funktion aboutfunction() { var varabout = document.getElementById ("about"); varabout.scrollIntoView (wahr); }; Ich habe jetzt versucht, etwas hinzuzufügen, es funktioniert irgendwie, aber nach dem Sprung an den richtigen Ort wechselt es sofort zum Anfang der Seite. – nafets97

+0

Dieses Skript funktioniert nur auf Seiten, wo es enthalten ist, und script check Hash-Abschnitt von URL. Also, wenn Sie in # 2 #someid in URL haben, wird es funktionieren. Ich denke, mit Ihrem exp. Sie besser yousse Lösung wie http://benalman.com/projects/jquery-hashchange-plugin/ auf der Plugin-Homepage können Sie Beispiel für Bindungsereignis finden (Code aus meiner Antwort innerhalb dieses Ereignisses verschieben) und es von anderen Orten auslösen . – MadDocNC