У меня есть 2 полноэкранных размера div
элементов. Я хочу, чтобы они были похожими на слайды, поэтому, если пользователь немного прокручивается, он прокручивается до второго div, если пользователь прокручивает его вверх, он прокручивается вверх.Прокрутить по Блокам
Однако он не работает. Я не могу прокручивать вверх, но он работает на прокрутке вниз. Я новичок в jQuery, подробные ответы были бы приятными.
var lastScrollTop = 0;
$(window).scroll(function(event) {
var st = $(this).scrollTop();
if (st > lastScrollTop) {
$('html body').animate({
scrollTop: $('#scrollHere').offset().top
}, 1000);
} else {
$('html body').animate({
scrollTop: 0
}, 1000);
}
lastScrollTop = st;
});
* {
margin: 0;
padding: 0;
}
.box {
width: 100%;
height: 100vh;
background: tomato;
}
.blue {
background: skyblue;
}
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<div class="box blue"></div>
<div class="box" id="scrollHere"></div>
Я думаю, это вызвано скоростью анимации – Ika
Одна очевидная проблема заключается в том, что анимация jquery переходит в очередь, в сочетании с тем, что при прокрутке события scroll запускаются довольно немного. Вероятно, это проблема. –
@kevinB Спасибо за комментарий. Похоже, что мое «решение» неверно. Можете ли вы предоставить хороший способ достичь этого? – Ika