Я пытаюсь вычислить расстояние между нижним колонтитулом веб-сайта и боковой панелью (у которой есть свойство переменной margin-top, которое имитирует элемент фиксированной позиции).
При меньших разрешениях боковая панель будет прокручиваться поверх нижнего колонтитула. Чтобы решить эту проблему, я хочу скрыть боковую панель, когда она X px из нижнего колонтитула, а затем снова отобразите ее после прокрутки X px над нижним колонтитулом.
Я пробовал приведенный ниже код (который находится внутри функции прокрутки окна), но это возвращает отрицательное число & работает не так, как ожидалось.
distance = sidebar.offset().top - footer.offset().top;
console.log(distance);
if ( distance > -500) {
sidebar.fadeOut('fast');
} else {
sidebar.fadeIn('fast');
}
Попробуй это.
$(window).scroll(function() {
//changed order, now you won't get negative number
distance = (footer.offset().top - footer.outerHeight() ) - sidebar.offset().top;
if( distance <= 50 ) // 50 or any distance you want
sidebar.fadeOut(500);
else
sidebar.fadeIn(500);
});
Добавлена эта часть внутри $(window).scroll()
чтобы она проверялась каждый раз при прокрутке.