Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » jQuery » Как выполнить условие только в случае скролла вверх минимум на 200px?

Как выполнить условие только в случае скролла вверх минимум на 200px?


     09.06.2020    jquery, javascript    Все вопросы » jQuery    1138

вопрос
Привет, помогите, как прикрутить к условию прокрутки вверх, чтобы оно срабатывало только в том случаем, если юзер прокрутил страницу не меньше чем на 200px? А вниз отставить без изменений.

Сейчас у меня моментально срабатывают условия при прокрутке вверх и вниз.
Блок который скрывается и показывается имеет position: fixed;, т.е. он всегда на экране.

var prevScrollpos = window.pageYOffset;
window.onscroll = function() {
var currentScrollPos = window.pageYOffset;
if (prevScrollpos > currentScrollPos) {
$(".activesettings").removeClass("displaynone");
} else {
$(".activesettings").addClass("displaynone");
}
prevScrollpos = currentScrollPos;
}

Ответил: Sander


$(window).scroll(function(){
	if ($(window).scrollTop() > 200) {
		$(".activesettings").removeClass("displaynone");
	} else {
		$(".activesettings").addClass("displaynone");
	}
})

2 комментария

TeraMoune
Эксперт

TeraMoune - 9 июня 2020 20:13 -

У Вас должно быть пара переменных, одна из которых постоянно обновляется и имеет текущее значение scrollTop, она есть, другая переменная должна иметь значение текущего скрола с вычетом нужного количества пикселей и обновлять в данную переменную в движении в низ, а в движении в верх проверять условием текущая позиция меньше ли позиции переменной с вычетом, если да выполнить.

Тестовый репозиторий установки плагинов: teramoune

Frostmorn
Юзер

Frostmorn - 10 июня 2020 15:11 -

Sander я так пробовал, это не то.
Так скрипт срабатывает всегда даже если юзер уже в средине страницы, или уже дошел до конца страницы, скрипт считает что уже больше 200px и сразу выполняет действие.

У меня не получается сделать относительно текущего положения юзера. Например юзер дошел до середины страницы, или до конца, не важно, где бы он ни был, а потом начал листать вверх, и надо чтобы функция запускалась как только он пролистает 200px.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх