2012-04-15 28 views
3

Hi Ich habe versucht, eine feste Seitenleiste in div Wrapping zu machen, aber noch kein Glück. Die Seite ist http://www.rayshaft.com/sample.html und ich brauche die Sidebar, um fest zu bleiben, während ich den anderen Nachrichtenabschnitt herunterscrolle. die Abschnittsstruktur ist wie folgt:Feste Seitenleiste in der Verpackung div

<section class="secondary"> 
<section id="sidebar"> 
... 
</section> 
<section id="othernews"> 
... 
</section> 

ich absolute Positionierung innerhalb „sekundären“ Abschnitt versucht, fest, dass die Seitenleiste tatsächlich fixiert relativ zu Browser-Fenster, und ich versuchte, diese Abfrage, die genau zu sein scheint Was ich brauche: http://jsfiddle.net/bryanjamesross/VtPcm/ aber ich konnte es nicht mit meiner Seite arbeiten lassen. Irgendeine Idee was mache ich falsch? Vielen Dank im Voraus

+0

Willkommen bei SO zu verwenden. Das ist schwer zu analysieren. Versuchen Sie, die Seite aufzuschlüsseln, bis der gewünschte Effekt funktioniert. Dann wieder aufbauen und dabei den Effekt beibehalten. – NGLN

+0

kann es eine andere Möglichkeit für mich geben, den gewünschten Effekt zu bekommen? –

+1

Nun, die Seite zu brechen half tatsächlich, danke. Ich glaube, ich habe irgendwo in meinem HTML-Code verwirrt, aber ich habe dieses Beispiel http://jsfiddle.net/bryanjamesross/VtPcm/ verwendet, um meine Seite wieder zu bauen und jetzt funktioniert alles ok –

Antwort

0

Try .position() statt .offset() und entfernen Sie zusätzliche Symbole von Ihrem Ende Skript ​

$(function() { 
    var top = $('#sidebar').position().top - parseFloat($('#sidebar').css('marginTop').replace(/auto/, 0)); 
    var footTop = $('#footer').position().top - parseFloat($('#footer').css('marginTop').replace(/auto/, 0)); 
    var maxY = footTop - $('#sidebar').outerHeight(); 
$(window).scroll(function(evt) { 
    var y = $(this).scrollTop(); 
    if (y > top) { 
     if (y < maxY) { 
      $('#sidebar').addClass('fixed').removeAttr('style'); 
     } else { 
      $('#sidebar').removeClass('fixed').css({ 
       position: 'absolute', 
        top: (maxY - top) + 'px' 
      }); 
     } 
    } else { 
     $('#sidebar').removeClass('fixed'); 
    } 
}); 
}); //​ What are this symbols ???? remove them! 
Verwandte Themen