2010-11-23 4 views
0

I wirklich, wirklich hoffe jemand wird mir dabei helfen! Vielen Dank, wenn du es tust! :)Javascript funktioniert nicht, wenn "examplelink.php # anchor" geklickt wird

Ich habe zwei Seiten ... eine namens index.php und ein portfolio.php benannt. Mein Header (gleich auf jeder Seite) enthält einige Anker, die sie wieder an die portfolio.php Seite (portfolio.php # blogg).

Ich habe auch einen JavaScript-Code für smooth scrolling (das auf allen Seiten funktionieren soll), aber es funktioniert nicht auf dem Kopf Anker-Links, wenn ich in einer anderen Seite dann portfolio.php bin.

Was kann ich tun, das Javascript zu bekommen zu funktionieren, wenn ich beispielsweise die Taste "portfolio.php # blogg" in der index.php Seite?

Heres mein javascript:

window.addEvent('domready',function() { new SmoothScroll({ duration: 800 }); }); 

Antwort

0

Hmmm .... Das Problem, wenn ich richtig verstehe, ist, dass der Browser mit dem Fragment Ankerposition springt, wenn sie von einer anderen Seite ankommen, bevor das Objekt ist Smooth geladen. Das erste, was einem einfällt, ist eine Lösung, die Sitzungen oder Cookies verwendet.

Wenn ein Benutzer auf der Indexseite ist und auf einen Link zum Portfolio klickt, der zum Anker #blogg blättern soll: Anstatt das Hashtag-Fragment zur URL des Links hinzuzufügen, speichern Sie ein Cookie, das angibt, dass die Seite gescrollt werden soll und verlinken Sie direkt zum Anfang der Portfolio-Seite.

Dann laden Sie auf der Portfolio-Seite domready Ereignis das SmoothScroll-Objekt, überprüfen Sie das Vorhandensein des Cookies, scrollen Sie zum Anker #blogg, wenn es existiert, und entfernen Sie den Cookie.

+0

Ja, Sie perfekt meine Frage verstanden! :) Aber ich brauche eine genauere Antwort, wenn das möglich sein könnte. Ich bin mir nicht sicher, wie es geht! Vielen Dank! :) –

0

Sie geben uns hier nicht viele Informationen, aber ich nehme an, dass SmoothScroll der von MooTools ist? Schauen Sie sich auf diese : http://davidwalsh.name/mootools-onload-smoothscroll

window.addEvent(‘domready’, function() { 
    new SmoothScroll({ duration:700 }, window); 
    var el = window.location.hash.substring(1); // the hash 
    if(el) { 
     window.scrollTo(0,0); 
     var scroll = new Fx.Scroll(
      window, 
      { wait: false, duration: 700, transition: Fx.Transitions.Quad.easeInOut } 
     ); 
     scroll.toElement(el); 
    } 
}); 
+0

ja, es ist der eine von moo tools! :) http://davidwalsh.name/smooth-scroll Ihr Code scheint fast zu funktionieren! : O Aber nicht ganz .. Es lädt die Seite, aber scrollt nicht hinunter zum Anker –

+0

existiert etwas ähnliches mit jquery? –