Вот ручка ...Fixed положение заголовка на свитке - Если Else не работает
http://codepen.io/jareko999/pen/bZXbWP
«тогда» часть JQuery работает и добавляет .fixed класс к #header, когда он равен до или ниже 0, но он не удаляет его, когда headerTop находится выше 0, «else». Я не могу понять, что здесь происходит. JS newb здесь, я хотел бы понять, как заставить это работать. Благодарю.
HTML
<div class="content">
<div id="header"></div>
</div>
CSS
body {
overflow-x: hidden;
margin: 0;
}
#header {
width: 100%;
height: 80px;
background: blue;
z-index: 1;
}
.content {
position: absolute;
top: calc(100% - 80px);
width: 100%;
height: 200vh;
background: linear-gradient(to bottom, red, yellow);
}
.fixed {
position: fixed;
top: 0;
width: 100%;
background: blue;
}
JQuery
$(window).scroll(function() {
var top = $('#header').offset().top;
var headerTop = (top - $(window).scrollTop());
if (headerTop <= 0) {
$('#header').addClass('fixed');
} else {
$('#header').removeClass('fixed');
}
});
Итак, когда вы установите позицию фиксированной, как вы думаете, что происходит, когда вы проверяете сверху? 'console.log (вверху);' покажет вам, почему это не работает. – epascarello
Oh ya, duh. Это будет headerTop, но я знаю, что вы имели в виду. Хм ... Я пытаюсь, когда контейнер достигает вершины 0 или меньше, добавьте класс, закрепленный в заголовке. Но когда он равен 0 или выше, он не имеет его или удаляет. Я вернусь к чертежной доске и посмотрю, что я могу сделать. –
Подсказка: высота элемента. Также вы можете избавиться от if else и выполнить jQuery. '$ ('# header'). toggleClass ('fixed', headerTop <= 0);' – epascarello