letehaha
@letehaha
Вникаю вo front-end

После выполнения скрипта другой скрипт перестает работать?

Есть вот такой код для кнопки меню:
var mainBurgerMenu = $('.main-burger-menu'),
    bulletsContainer = $('.bullets-container'),
    slideContent = $('.slide-content'),
    overfloWrapper = $('.overflow-wrapper');

$('#burger-top').click(function(e) { //открытие главного меню
	slideContent.css({transform: 'translateX(-60%)'})
	overfloWrapper.addClass('overflow-wrapper--hidden');
	mainBurgerMenu.css({width: '60%'});
	bulletsContainer.css({display: 'none'});
	bodyPage.css({'overflow-y': 'hidden'});
	e.preventDefault();
});

$('#close-btn-nav').click(function(e) { //закрытие главного меню
	slideContent.css({transform: 'translateX(0)'})
	overfloWrapper.removeClass('overflow-wrapper--hidden');
	mainBurgerMenu.css({width: '0'});
	bulletsContainer.css({display: 'flex'});
	bodyPage.css({'overflow-y': 'auto'});
	e.preventDefault();
});


И есть вот такой для липкого меню (по дефолту меню должно скрываться при скролле вниз, а появляться при скролле вверх):
var topNavigation = document.querySelector('#nav-wrapper');
var prevPosition = 700;

function onScroller() {
	var st = $(this).scrollTop();
	if (st > prevPosition) {
	 topNavigation.classList.add('top-nav-menu-close');
	} else {
	 topNavigation.classList.remove('top-nav-menu-close');
	}
	prevPosition = st;
}

document.addEventListener('scroll', onScroller);


Пояснение
По началу второй скрипт работает как нужно. Но после открытия и закрытия меню (первого скрипта), он перестает работать как нужно (начинает показывать меню только когда offset.top = 0).

Вот код
  • Вопрос задан
  • 158 просмотров
Решения вопроса 1
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
slideContent.css({transform: 'translateX(0)'}) - это не обнуление translateX
вот обнуление:
slideContent.css({transform: 'inherit'})

https://jsfiddle.net/x3grdns7/1/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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