2016-03-30 2 views
1

Я пытаюсь сделать заметный заголовок видимым, когда верхняя часть div поражена, а затем невидима, когда попадает верхняя часть второго 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

Спросить, так ли он ищет духа – NiZa

+0

Я имею в виду, не так ли? Я спрашиваю, что вы изменили? И почему? –

Смежные вопросы