Как скрыть div при клике и записать на 24 часа в localStorage?

Здравствуйте.
Есть работающий скрипт который при клики по ссылки скрывает div
ВОПРОС : Как сделать что бы блок div скрывался для пользователя на определённый промежуток времени ? ( например 24 часа )
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>

      
</head>
<body>

<div class="col" data-box-id="1">
<a href="#" >ССЫЛКА1</a>
</div>
<div class="col" data-box-id="2">
<a href="#" >ССЫЛКА 2</a>
</div>
<div class="col" data-box-id="3">
<a href="#" >ССЫЛКА 2</a>
</div>
<div class="col" data-box-id="4">
<a href="#" >ССЫЛКА 2</a>
</div>
   <script>
function ready() {
  var blockIds = [];
  var blocks = document.querySelectorAll('[data-box-id] a');
  blocks.forEach(block => block.addEventListener('click', e => {
  blockIds.push(e.target.parentNode.getAttribute('data-box-id'));
  e.target.parentNode.style.display = 'none';
  localStorage.setItem('blocks', JSON.stringify(blockIds));
    console.log(localStorage.getItem('blocks'));
  }))
}
document.addEventListener("DOMContentLoaded", ready());
    </script>
  
</body>
</html>
  • Вопрос задан
  • 198 просмотров
Пригласить эксперта
Ответы на вопрос 1
Добавляй в сохраняемый item 'blocks' метку времени начиная с которого они должны быть скрыты
var blocks ={
hiddenSince: 'метка времени',
blockIds: blockIds,
}

localStorage.setItem('blocks', JSON.stringify(blocks));


Вывод html делай в зависимости от прочтения этих данных
Есть blocks в localStorage и время не истекло - не показываем
Нету blocks (или есть, но время hiddenSince минус текущее время больше положенного) - показываем
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
17 апр. 2024, в 00:48
35000 руб./за проект
17 апр. 2024, в 00:13
800 руб./за проект
17 апр. 2024, в 00:06
240000 руб./за проект