Я использую приведенный ниже код, который добавляет класс fixed
в #sidebar
, когда он достигает определенной высоты от вершины сайта в зависимости от того, на какой странице он (например, home, single, page).
Аналогичным образом я хотел бы добавить класс bottom
в #sidebar
, когда #sidebar
достигнет нижней части своего контейнера (#content
). Если пользователь прокручивает резервную копию, класс bottom
должен быть удален, а класс fixed
должен быть добавлен обратно.
Цель состоит в том, чтобы попытаться заставить фиксированную боковую панель перемещаться вместе с остальной частью содержимого в своем контейнере, когда она достигает нижней части.
JavaScript
var threshold = 236;
if (jQuery(document.body).hasClass("home")) {
threshold = 654;
} else if (jQuery(document.body).hasClass("single") || jQuery(document.body).hasClass("page")) {
threshold = 20;
}
var scrolled = false;
jQuery(window).scroll(function () {
if (jQuery(window).scrollTop() >= threshold && !scrolled){
jQuery('#sidebar').addClass('fixed');
scrolled = true;
} else if (jQuery(window).scrollTop() < threshold && scrolled) {
jQuery('#sidebar').removeClass('fixed');
scrolled = false;
}
});
HTML
<div id="container">
<div id="content">
<div id="sidebar"></div>
<div id="masonry"></div>
</div>
</div>