dieiN
@dieiN

Как закрепить блок вверху, и сделать так чтоб он онткрывался единожды за сессию?

5d411d8ce588c616721863.jpeg

Добрый день, речь идет о блоке с предложением просмотреть канал в YouTube.
- необходимо чтобы он закрепился вверху страницы при скроле.
- при закрытии блока показывался единожды (на данный момент происходит то что блок закрываю, но при обновлении или переходе на другую страницу он появляется вновь).

Вот код.
<style>
  .youtube_block {
  background: #c4302b;
  display: flex;
  justify-content: space-around;
	height: 33px;
	}
	.hide_youtube_block {
  display: none;
	}
</style>
<div class="youtube_block">
  <a href="https://www.youtube.com/channel/UCDa1zyJ24dkwxjjYrJhMAYA" target="_blank"><img src="/wp-content/uploads/2019/07/youtube.svg" width="32px" heiht="32px" style="padding: 5px;">Ознакомтесь с нашим YouTube каналом</a>
  <a class="youtube_block_button"><img src="/wp-content/uploads/2019/07/delete-button.svg" width="32px" heiht="32px" style="padding: 5px;"></a>
</div>
<script type="text/javascript">
	document.querySelector('.youtube_block_button').addEventListener('click', () => {
  document.querySelector('.youtube_block').classList.add('hide_youtube_block')
})
</script>

Может по средствам PHP привязать его к сессии? Подскажите решение.
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
delphinpro
@delphinpro
frontend developer
sessionStorage
document.querySelector('.youtube_block_button').addEventListener('click', () => {
  document.querySelector('.youtube_block').classList.add('hide_youtube_block');
  sessionStorage.setItem('youtube-block', 1);
});
if (sessionStorage.getItem('youtube-block')) {
  document.querySelector('.youtube_block').classList.add('hide_youtube_block');
}


UPD
Чтобы блок не мелькал, лучше инвертировать логику. С сервера отдавать скрытый блок, а при отсутствии флага в sessionStorage показывать его.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Giperoglif
можно куку писать, например на сутки и в зависимости от ее отсутствия выводить блок.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Искра Екатеринбург
от 80 000 до 100 000 ₽
Art gorka Санкт-Петербург
от 60 000 ₽
от 40 000 до 60 000 ₽
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект