@Golopolos

Скрытый блок появляется на секунду при обновлении страницы?

Есть блок, который свернут и на нем висит кука. Пр обновлении страницы он на секунду разворачивается и сворачивается обратно. Как убрать это?

function closed() {
    let html = document.querySelector('body');
    window.addEventListener('unload', () => {
      setCookie('closed', html.classList.contains('closed') ? 1 : 0);
    });
    if (getCookie('closed') == 1) {
      html.classList.add("closed");
    }
    document.querySelector('.block').addEventListener('click', function() {
      html.classList.toggle("closed");
    });
  }
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
Пр обновлении страницы он на секунду разворачивается и сворачивается обратно. Как убрать это?
Ну так у вас элемент не имеет класса closed до момента выполнения функции, логично что загружается он открытым.

Как убрать это?
1) в коде добавить элементу closed, и уже при вызове функции убирать, если в куке нужный флаг. Задержка тоже будет, но уже на открытие, что не так страшно.
2) На стороне сервера проверять куку, и добавлять в разметку нужный класс еще на сервере.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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