2016-03-30 4 views
1

divの先頭がヒットしたときにスティッキーヘッダーを表示しようとしていて、下の2番目のdivの先頭にヒットしたときに表示されません。別のdivの上にスクロールした後にdivを表示するにはどうすればいいですか?

私のコードに間違いがありません:

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"); 
    } 
}); 

私は何かが& &演算子の使用では動作しませんが、私は何を見つけることができないと思います。また、説明するためにen codepenを作成しました。http://codepen.io/jeremyobriot/pen/zqdpyJ

助けを借りてありがとう!

+0

あなたが動いているターゲットに確認されているように見えます。動的オブジェクトに頼らないでください。 –

+0

[CodePen](http://codepen.io/anon/pen/yOopWv)は必要に応じて動作します。 –

+1

@PraveenKumarしかし、彼はそれが動作するように動作しません。彼はライトピンクの背景に黒の固定メニューバーが消えるように(私の理解から)望んでいます – Craicerjack

答えて

1

これは意味ですか?ヘッダーは赤いボックス内でのみ表示されます。

ウィンドウのscrollTopがアイコンセットの上端よりも高く、バンドルの上端よりも低いかどうかを尋ねる声明を出しました。

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

さて、ここで何を言おうとしていますか? :) –

+0

これは、彼がduhを探しているところであるかどうかを尋ねる – NiZa

+0

私はそれを意味しますか?あなたは何を変えたのですか?なぜ? –

関連する問題