2016-03-30 13 views
1

Ich versuche, einen sticky header sichtbar zu machen, wenn der Anfang eines divs getroffen wird, und dann unsichtbar, wenn der obere Teil eines zweiten divs darunter stehtWie zeigt man ein Div nach dem Scrollen an die Spitze eines anderen div?

Ich kann nicht herausfinden, was mit meinem Code nicht stimmt:

var iconsetTop = $('.icon-sets').offset().top; 
var bundleTop = $('.bundle-offer').offset().top; 

$(window).on('scroll', function(){ 
    if ((iconsetTop >= $(window).scrollTop()) && (bundleTop >= $(window).scrollTop())){ 
     $('.set-header').css("top","-20%"); 
    } else { 
     $('.set-header').css("top","0"); 
    } 
}); 

ich glaube, etwas ist mit der Verwendung der & & Betreiber nicht funktioniert, aber ich kann nicht herausfinden, was. Außerdem habe ich en compen erstellt, um zu veranschaulichen: http://codepen.io/jeremyobriot/pen/zqdpyJ

Dank im Voraus für die Hilfe!

+0

Sieht aus wie Sie mit einem Ziel werden überprüft, die sich bewegt. Verlassen Sie sich nicht auf dynamische Objekte. –

+0

Der [CodePen] (http://codepen.io/anon/pen/yOopWv) funktioniert wie es sollte. –

+1

@PraveenKumar, aber es funktioniert nicht, wie er will, dass es funktioniert. Er will (formiere mein Verständnis), um die schwarze feste Menüleiste auf dem hellrosa Hintergrund verschwinden zu lassen. – Craicerjack

Antwort

1

Sie meinen das? Die Kopfzeile ist nur in der roten Box sichtbar.

Ich habe eine Aussage gemacht, wo ich frage, ob scrollTop des Fensters höher ist als das Iconset oben und niedriger als das Bündel oben.

var iconsetTop = $('.icon-sets').offset().top; 
 
var bundleTop = $('.bundle-offer').offset().top; 
 

 
$(window).on('scroll', function() { 
 
    if ($(window).scrollTop() >= iconsetTop && $(window).scrollTop() <= bundleTop) { 
 
    $('.set-header').css("top", "0"); 
 
    } else { 
 
    $('.set-header').css("top", "-20%"); 
 
    } 
 
});
body { 
 
    margin:0; 
 
} 
 

 
.set-header { 
 
    height: 50px; 
 
    background-color: black; 
 
    position: fixed; 
 
    width: 100%; 
 
    top: -20%; 
 
} 
 

 
.space { 
 
    height: 100px; 
 
    background-color: blue; 
 
} 
 

 
.icon-sets { 
 
    height: 500px; 
 
    background-color: IndianRed; 
 
} 
 

 
.bundle-offer { 
 
    height: 1000px; 
 
    background-color: pink; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="set-header"></div> 
 
<div class="space"></div> 
 
<div class="icon-sets"></div> 
 
<div class="bundle-offer"></div>

+0

Okay, was versuchst du hier zu sagen? :) –

+0

Frage, ob dies der Weg ist, wo er nach duh sucht – NiZa

+0

Ich meine, verstehe ich das nicht? Ich frage, was hast du verändert? Und warum? –

Verwandte Themen