2016-06-05 20 views
-1

Ich habe diesen Code, um meine Sidebar beim Scrollen nach unten geklebt. Dadurch kann die Seitenleiste jedoch bis zum Ende der Seite verschoben werden, wodurch andere Elemente auf der Site überlappen.Stop feste div auf bestimmten DIV

$(function() { 
 
    var counter = 0; 
 
    var s = $("#counter"); 
 
    var pos = s.position(); 
 
    $(window).scroll(function() { 
 
     var windowpos = $(window).scrollTop(); 
 
     if (windowpos >= pos.top) { 
 
      s.addClass("stick"); 
 
     } else { 
 
      s.removeClass("stick"); 
 
     } 
 
    }); 
 

 
});

<div id="sidebar"> \t 
 
    <div id="counter"> 
 
    * php dynamic_sidebar('Sidebar'); * 
 
    <div class="clear"></div> 
 
    </div> \t \t 
 
</div>

ich jetzt eine Stunde lang gesucht haben, ohne eine Lösung zu finden. Ich möchte, dass die Seitenleiste aufhört, geklebt zu werden, wenn die Schriftrolle die div Fußzeile erreicht.

+1

Vielleicht möchten Sie auch das entsprechende HTML einbinden. – nicael

+0

Im ersten Beitrag hinzugefügt. – Musa

Antwort

0

Sie müssen CSS verwenden, um dieses Problem anzugehen. Fügen Sie einfach Padding von unten gleich der Höhe des Elements am unteren Rand hinzu.

Angenommen, Sie haben eine Fußzeile mit der Höhe 50px. Fügen Sie dann padding-bottom: 50px zur Seitenleiste hinzu und geben Sie Fußzeile einige Z-Index auch wie Z-Index: 9 oder Z-Index: 99.

Lassen Sie mich wissen, ob dies hilft.

Danke

+0

Ich sehe Ihren Punkt, aber es funktioniert nicht so, wie es sollte. Die geklebte Seitenleiste muss genau am Anfang der Fußzeile div. Gestoppt werden. Diese Methode erhöht die Höhe des Starts für die Seitenleiste. Danke – Musa

+0

Dann entferne padding-bottom und füge unten hinzu: -50px entferne auch top-Eigenschaft, wenn es nur einen unteren hinzufügen. –

+0

siehe hier: - https://codepen.io/arun459/pen/LZVMxb –