У меня есть div, который я хочу сохранять относительным на странице до тех пор, пока позиция прокрутки не достигнет вершины div, а затем с помощью добавления класса применяется фиксированное значение с плавающей точкой.
У меня есть код, который, я думаю, должен работать; однако, не может заставить его делать что-либо. При прокрутке div остается относительным и не применяет класс для исправления объекта.
$(function() {
var a = function() {
var b = $(window).scrollTop();
var c = $("#header");
var d = c.offset();
if(b > d){ alert(d); c.addClass("header-fixed"); }
else { c.removeClass("header-fixed"); }
};
});
Это CSS
.header-fixed { position: fixed; top: 0; left: 0; right: 0; }
#header {
z-index: 1000;
float: left;
width: 100%;
z-index: 9999998;
}
У меня есть div выше заголовок, который может колебаться по высоте, поэтому я хотел рассчитать расстояние от верха заголовка до верхней части страницы динамически. Всякий раз, когда позиция прокрутки достигает позиции вершины div, я хочу добавить класс с фиксированным заголовком. Если позиция прокрутки идет меньше, чем позиция, я хочу удалить фиксированный заголовок класса, чтобы снова показать div над заголовком.
HTML:
<div id="header_container">
<div id="header" class="background-white border-bottom-navy-dark box-shadow-navy-dark">
<div id="header_1" >
<a href="index" class="no-decoration"><img class="logo" src="images/12345.png" alt=""/>
<div class="display-none-mobile">
<h1 class="title1 color-gold">HEADER 1</h1>
<h2 class="subtitle color-navy-dark">SUB HEADER</h2>
</div>
</div></a> <?php /*---- header left ----*/ ?>
<div id="header_2">
<a href="javascript:void(0)" class="cart-link no-decoration color-gold material-icons">shopping_cart</a>
<a href="javascript:void(0)" class="account-link no-decoration color-gold material-icons">person</a>
<a href="javascript:void(0)" class="menu-link no-decoration color-gold material-icons">menu</a>
</div> <?php /*---- header right ----*/ ?>
</div> <?php /*---- header ----*/ ?>
</div> <?php /*---- header site container ----*/ ?>
</div> <?php /*---- header container ----*/ ?>