Aison
@Aison

Свойство scroll не работает в данном примере, как решить?

При прокрутке вниз класс добавляется и сразу же удаляется что видно на этом видео (radikal)

код jq

const $header = $(".header")
let prevScroll
let lastShowPos

$('.main').scroll(function() {
	const scrolled = $('.main').scrollTop()

	if (scrolled > 0 && scrolled > prevScroll) {
		$header.addClass("header_hide")
		lastShowPos = scrolled
	} else if (scrolled <= Math.max(lastShowPos - 255, 0)) {
		$header.removeClass("header_hide")
	}
	prevScroll = scrolled
});


этот класс добавляется.
.header_hide {
	display:none;
}


что примечательно. у шапки 42px и border в 2 пикселя снизу. если сделать так

.header_hide {
	max-height:0;
}


то получится, что высота border останется и вроде как норм работает, но нужно заставить работать скрипт правильно, я даже не представляю как решить сие проблему...
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 1
@alekcena
Нелинейный наставник
1) Не используйте спец символы в названиях. Вот мне нужно будет найти потом эту переменную, я как с бубном должен танцевать что-бы это отыскать?
2) Используйте точку с запятой. Я хочу быть уверен что код 100% работает как надо.
display:none;
свойство убирает элемент с потока документа.
когда вы убираете этот элемент ,у вас убирается скролл(все элементы вмещаются в 1 экран), scroll = 0;

Всё это можно было узнать сделав console.log(scrolled);

Ткже можно написать что вы вообще хотите сделать.
Тк как весь код ,что вы написали, потенциально может заставить дёргаться контент. Будь у вас контента больше чем на 1 экран.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы