@righto

Как убрать класс у кнопки при скролле до нее и добавить обратно, если прокрутить страницу обратно вверх на jquery?

Есть кнопка внизу страницы с классом fixed. Нужно при скролле до нее убрать этот класс, а если проскроллить страницу обратно вверх, класс опять должен добавляться.

Получается только убирать класс:

var $element = $('.checkout-bottom__button');

    $(window).scroll(function() {
	var scroll = $(window).scrollTop() + $(window).height();
	var offset = $element.offset().top;
				 
	if (scroll > offset) {
		$('.checkout-bottom__button').removeClass("fixed");
	}
    });

Если добавить else, то класс добавляется и убирается не так, как нужно, кнопка скачет туда сюда:

var $element = $('.checkout-bottom__button');

    $(window).scroll(function() {
	var scroll = $(window).scrollTop() + $(window).height();
	var offset = $element.offset().top;
				 
	if (scroll > offset) {
		$('.checkout-bottom__button').removeClass("fixed");
	} else {
		$('.checkout-bottom__button').addClass("fixed");
	}
    });


jsfiddle

Высота страницы непостоянна из за спрятанных, раздвигающихся при клике, блоков.
  • Вопрос задан
  • 238 просмотров
Пригласить эксперта
Ответы на вопрос 1
@vardoLP
Ват ю сэй эбаут май мама?!
высоту надо указывать, чтобы скрипт знал, когда добавлять или убирать класс

$("#back-top").hide();

		$(window).scroll(function (){
			if ($(this).scrollTop() > 700){
				$("#back-top").fadeIn();
			} else{
				$("#back-top").fadeOut();
			}
		});

		$("#back-top a").click(function (){
			$("body,html").animate({
				scrollTop:0
			}, 800);
			return false;
		});
Ответ написан
Ваш ответ на вопрос

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

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