У меня есть отлично функционирующий элемент, который ведет себя так, как должен. Когда пользователь прокручивается мимо определенной точки, добавляется класс. Когда пользователь выполняет прокрутку, класс удаляется. Моя проблема заключается в том, что после добавления класса, когда я обновляю страницу, класс больше не добавляется до тех пор, пока я не перейду еще раз.Добавление класса в прокрутку и сохранение поведения после обновления страницы
Это прерывистый случай. Firefox является основным браузером, который постоянно создает проблему. Chrome включен и выключен.
Я включил очень упрощенный фрагмент кода, однако его нелегко увидеть, так как он нуждается в обновлении. Я искал весь день и смотрел на файлы cookie, локальное хранилище, classie.js. Я уверен, что есть более простое и простое решение, чем те.
Вот такой сайт с аналогичной проблемой: https://bert.house/en/. Проверьте его в Firefox. Кнопка nav в левом верхнем углу страницы, прокрутите вниз и посмотрите, что произойдет. Затем обновите, вы увидите, что оно возвращается в исходное состояние, пока вы не прокрутите его снова.
$(window).scroll(function() {
var box = $('.box');
var scroll = $(window).scrollTop();
if (scroll > 100) {
box.removeClass('box-NotScrolled');
box.addClass('boxScrolled');
} else {
if (box.hasClass('boxScrolled')) {
box.removeClass('boxScrolled');
box.addClass('box-NotScrolled');
}
}
});
.box {
position: fixed;
top: 5%;
left: 5%;
width: 200px;
height: 200px;
background-color: red;
}
.boxScrolled {
background-color: green;
}
.box-NotScrolled {
background-color: red;
}
<div class="box"></div>
<div style="height: 1000px"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Это не является серьезной проблемой. Это то, что меня беспокоит, ведь там должна быть работа. Любая помощь будет большой. Благодарю.
_ "Я искал весь день и смотрел на печенье, локальное хранилище, classie.js. Я уверен, что есть более простое и простое решение, чем это. »_ Нет, это то, что вы будете использовать. CSS и HTML ничего не «запомнят». Я бы установил элемент localStorage при прокрутке, затем прочитал этот элемент при загрузке страницы и, если он существует, добавьте класс через JS. –
Спасибо за ответ. Это имеет смысл. Я пойду на это. Раньше не было локального хранилища. Мне нужно будет установить элемент localStorage, когда пользователь достигнет точной точки ... Есть ли у вас рекомендуемые ссылки, на которые я мог бы пойти? Места, которые я уже рассматривал, кажутся слишком продвинутыми для того, что я хочу делать. Еще раз спасибо. – Jenn
'localStorage.setItem ('scrolled', true);' когда пользователь прокручивается. Затем на странице load 'if (localStorage.getItem ('scrolled')) {// addclass}' –