2015-11-23 6 views
5

Ich habe ein Problem mit der Verknüpfung innerhalb der Seite. Dies ist Teil des jQuery-Code ich in meiner Seite verwendenAnker funktioniert nicht

$.fn.stopAtTop= function() { 
    var $this = this, 
     $window = $(window), 
     thisPos = $this.offset().top, 
     //thisPreservedTop = $this.css("top"), 
     setPosition, 
     under, 
     over; 

    under = function(){ 
    if ($window.scrollTop() < thisPos) { 
     $this.css({ 
      position: 'absolute', 
      top: "" 
     }); 
     setPosition = over; 
    } 
    }; 

    over = function(){ 
    if (!($window.scrollTop() < thisPos)){ 
     $this.css({ 
      position: 'fixed', 
      top: 0 
     }); 
     setPosition = under; 
    } 
    }; 

    setPosition = over; 

    $window.resize(function() 
    { 
    bumperPos = pos.offset().top; 
    thisHeight = $this.outerHeight(); 
    setPosition(); 
    }); 

    $window.scroll(function(){setPosition();}); 
    setPosition(); 
}; 

Und dies ist ein Beispiel DEMO

Wenn ich nach unten scrollen, alles funktioniert gut, aber wenn ich zum Seitenanfang gehen will, es ist unmöglich. Ich weiß, dass das Problem darin besteht, dass das Skript div repariert, aber ich weiß nicht, wie ich es beheben kann. Irgendwelche Ideen?

+2

in Ihrem HTML bei der Demo Link auf '# four' in beiden Links, dann ist dies beabsichtigt? –

+0

Nein, das war ein Fehler. Ich habe es repariert. – MaSza

Antwort

2

einen Click-Handler hinzufügen, die oben auf der Seite scrollt:

$("[href='#one']").click(function() { 
    scrollTo(0, 0); 
}); 

jsfiddle.net/jx8nmhfq/1

+0

Awsome! Danke :-) Ich brauche etwas genau das, was du schreibst, etwas wie "Schau, das ist so einfach", weil ich viel Zeit verloren habe, um nach der Lösung zu suchen. – MaSza