Показать сообщение отдельно
  #1 (permalink)  
Старый 09.11.2019, 15:15
Новичок на форуме
Отправить личное сообщение для ofrus Посмотреть профиль Найти все сообщения от ofrus
 
Регистрация: 09.11.2019
Сообщений: 3

Неправильно считает offsetTop до элемента
Здравствуйте, столкнулся с такой проблемой:
Задача: Есть плавающий элемент, который нужно зафиксировать при достижении нижней части сайта(в моем случае блока с id "sp-section-6").
Мое решение: Данный код отлично работал:
var stopmove = document.getElementById("sp-section-6").offsetTop;
		$(window).scroll(function() {
			 if ($(window).scrollTop() > stopmove - 200) {
				box.stop().animate({marginTop: topPadding+stopmove - 200}); 
			 }
			else 
				if ($(window).scrollTop() > offset.top) {
				box.stop().animate({marginTop: $(window).scrollTop() - offset.top + topPadding + 150});
			}
			else {
				box.stop().animate({marginTop: topPadding});
			}
		});

Код работал, пока у меня в статьях не было асинхронной загрузки скриптов, которые добавляют контент в статью и увеличивают ее высоту, соответственно, offsetTop вычисляется до загрузки этих скриптов, показывает неправильную высоту статьи, и плавающий элемент фиксируется где-то в середине статьи.
Вопрос: как решить эту проблему?
Ответить с цитированием