2012-03-26 12 views

Antwort

4

Nachdem ich dies in der letzten halben Stunde durchgearbeitet hatte, dachte ich mir, dass der einfachste Weg das ist, manuell nach dem Ende des Inhalts zu suchen Danach ging es, um wie beabsichtigt zu zeigen, jedoch um es so hinterhältig zu machen, als ob es noch an der gleichen Stelle wäre, wird ein Rand oben ebenso auf die Seitenleiste angewendet, um es am Ende des Scrollens zu halten Inhalt.

hier ist die jsfiddle: http://jsfiddle.net/mikeymagic/yxh8m/3/

mit diesem Stück jquery Magie:

var sidebarheight = $('.sidebar').height(); 
var contentheight = $('.content').height(); 

if (y > (contentheight - sidebarheight)) { 
    $('.sidebar').css({marginTop: contentheight - sidebarheight - 10}); 
    $('.sidebar').removeClass('fixed'); 
} 
else 
    { 
    $('.sidebar').css({marginTop: '0'}); 
    $('.sidebar').addClass('fixed'); 
    } 

diese zwischen diesem

eingeführt wird
var y = $(this).scrollTop(); 
    if (y >= top) { 
     $('.sidebar').addClass('fixed'); 

und diese:

} else { 
     $('.sidebar').removeClass('fixed'); 
    } 
    }); 
});​ 
+0

Thank du Magie :) –

+0

Keine Sorge coolcat! –

+0

Position Fixed ist das, was all diese nervigen "behalte dieses Menü in deinem Gesicht" -Skripten, auf die du vielleicht sogar 33,33% im Internet findest, verwenden sollte. Die Tatsache, dass sie die Position eines Blocks pro Millisekunde aktualisieren, ist einfach zu langsam und sieht nach einer Verzögerung aus. Position Fixed === Verzögerung behoben :) Upvote für Sie, Herr. @MagicDev! –