Мне нужна моя боковая панель для прокрутки вверх и вниз с окном, но остановитесь, когда div находится вверху или внизу. Приведенный ниже код работает, когда страница сначала загружается и прокручивается вниз, или когда страница прокручивается медленно, но когда страница прокручивается до самой нижней части div боковой панели, страница должна достигать вершины (а затем и некоторых) в чтобы вызвать изменение маржи.Переместить div с прокруткой окна не согласовано
Есть ли какой-нибудь другой триггер, который я должен искать, кроме как только на свитке? Как настроить этот код для правильной настройки div?
$(window).on("load scroll", function() {
var scrollYpos = $(document).scrollTop();
var sidebarinfo = $("#sidebar").offset().top + $("#sidebar").height();
var windowinfo = $(window).height() + $(window).scrollTop();
if ((windowinfo)<(sidebarinfo)){
$('#sidebar').css('margin-top', -scrollYpos);
}
});
Боковая панель имеет фиксированное положение. Если я использую абсолютную позицию, div прокручивается отлично, но она не останавливается, когда нижняя часть div достигнута - она просто продолжает прокручиваться с окном.
Я исправил основную часть проблемы с помощью этого кода.
$(window).on("load scroll", function() {
var sidebarinfo = $("#sidebar").scrollTop() + $("#sidebar").height();
var windowinfo = $(window).innerHeight() + $(window).scrollTop();
if ((windowinfo)<(sidebarinfo)){
$('#sidebar').css('top', -($(window).scrollTop()));
}
});
Единственная проблема заключается в загрузке страницы, на боковой панели застревает в неправильном положении, пока он не прокручивается весь путь (и более).
Вам нужно будет сделать это 'позицию: абсолютная;', а затем прослушивать события прокрутки и каждый раз, который изменится, вам нужно будет отрегулировать положение, где бы ни находился верхний край окна. (Это на самом деле сложнее, поскольку вам нужно позволить ему спуститься с края, когда они прокручивают назад) –