Я пытаюсь остановить прокрутку переменной вместо измерения в пикселях.
РОЗОВЫЙ - верх моей страницы. ЖЕЛТЫЙ - ничего особенного, но КРАСНЫЙ - это то, где я пытаюсь остановить действие прокрутки. используя переменную для вызова идентификатора по моему выбору. Пользователь все еще должен иметь возможность прокручивать вверх, но никогда не прокручивать дальше красного div.
Я нашел несколько примеров с использованием пикселей, но моя страница меняет высоту, поэтому я пытаюсь нацелиться на id
из div с помощью переменная вместо позиции в пикселях.
Моя сломанная скрипка: http://jsfiddle.net/mikeloucas/d7o8exub/52/
PS Я делаю анимацию, поэтому пытаюсь держать пользователя включенным красный div, пока они не нажмут кнопку «остановить прокрутку». (У меня эта часть работает в другом месте, а не здесь, но она основана на пикселях.)
$(document).ready(function() {
var StartTop = $("#beginning").offset().top;
/* $(document).scrollTop(StartTop); */
var EndGame = $("#stopHere").height();
$(document).on("scroll", function(e) {
var windowScrollTop = $(window).scrollTop();
if (windowScrollTop < EndGame) {
$(document).scrollTop(EndGame);
} else if (windowScrollTop > EndGame) {
$(document).scrollTop(StartTop);
}
});
});
body {
margin: 0;
}
#beginning {
height: 200px;
background: pink;
}
.genBox {
height: 500px;
background: yellow;
width: 90%;
margin: 0 auto;
}
#stopHere {
height: 500px;
background: red;
width: 90%;
margin: 0 auto;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="beginning"></div>
<div class="genBox"></div>
<div class="genBox"></div>
<div id="stopHere"></div>
<div class="genBox"></div>