Новости и идеи бизнеса

Как сделать уведомление о Cookie с затемнением и блокировкой сайта до согласия (на Tilda)

Сегодня владельцы сайтов обязаны уведомлять пользователей о сборе Cookie. В Tilda можно реализовать такую систему без сторонних скриптов — с блокировкой прокрутки, затемнением и интерактивными окнами. Вот как это сделать:

🔧 Шаг 1: Добавьте блок T886 (баннер)

Это нижний баннер с кратким уведомлением и ссылкой на политику:

"Мы используем файлы cookie. Продолжая использовать сайт, вы соглашаетесь на их использование. Подробнее — [Cookie]."

📌 Сделайте слово "Cookie" ссылкой на попап #popup:Cookie

🗂️ Шаг 2: Создайте попап BF503 с #popup:Cookie

Это окно содержит политику обработки данных.

Пример текста для этого блока:
Что такое cookie?

Cookie — это небольшие текстовые файлы, которые сохраняются в вашем браузере. Они помогают:

  • запоминать ваши настройки и предпочтения,
  • анализировать посещаемость сайта,
  • делать использование сайта удобнее,
  • предлагать более релевантную рекламу и контент.

Мы используем cookie только для улучшения работы сайта. Никакие персональные данные не передаются третьим лицам без вашего согласия.

Внизу — две кнопки:

  • ✅ Понятно→ закрывает и снимает блокировку ( ссылка на главную страницу)
  • ❌ Не согласен → открывает следующее окно (ссылка на #popup:sogl)

🧾 Шаг 3: Попап отказа (BF503 #popup:sog )

Если пользователь не согласен, открываем окно с текстом:

"К сожалению, без использования файлов cookie мы не можем предоставить вам все функции сайта."

Кнопка "Понятно" — завершает сценарий. (ссылка на главную страницу)

💻 Шаг 4: Добавьте этот код

В HTML-блок внизу страницы:

<style>
  /* Блокировка прокрутки только на больших экранах */
  @media (min-width: 769px) {
    body.cookie-lock {
      overflow: hidden;
    }

    #cookie-overlay {
      position: fixed;
      top: 0;
      left: 0;
      width: 100vw;
      height: 100vh;
      background-color: rgba(0, 0, 0, 0.5);
      z-index: 9990;
    }
  }

  /* Баннер куки — фиксирован внизу на всех экранах */
  #rec996921256 {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    background: #fff;
    padding: 20px;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.2);
    text-align: center;
    font-size: 16px;
    width: 100%;
    max-width: 100vw;
  }

  @media (max-width: 768px) {
    #rec996921256 {
      font-size: 16px;
      padding: 16px;
    }
  }
</style>

<!-- Затемнение (только на десктопе) -->
<div id="cookie-overlay"></div>

<script>
  function removeCookieOverlay() {
    const overlay = document.getElementById('cookie-overlay');
    const banner = document.getElementById('rec996921256');
    if (overlay) overlay.style.display = 'none';
    if (banner) banner.style.display = 'none';
    document.body.classList.remove('cookie-lock');
  }

  document.addEventListener("DOMContentLoaded", function () {
    if (localStorage.getItem('cookieAccepted') === 'true') {
      removeCookieOverlay();
      return;
    }

    // Блокируем прокрутку только на больших экранах
    if (window.innerWidth > 768) {
      document.body.classList.add('cookie-lock');
    }

    const observer = new MutationObserver(() => {
      const acceptBtn = document.querySelector('#rec996921256 .t-btn');
      if (acceptBtn) {
        acceptBtn.addEventListener('click', function () {
          localStorage.setItem('cookieAccepted', 'true');
          removeCookieOverlay();
        });
        observer.disconnect();
      }
    });

    observer.observe(document.body, { childList: true, subtree: true });
  });
</script>
🟡 Замените #rec996921256 на ID блока T886 на вашей странице.

🧠 Результат:

  • Сайт затемнён, пока не будет согласия
  • Прокрутка отключена
  • Можно отказаться — откроется окно-предупреждение
  • Все работает без сторонних плагинов
Важно:
  • Работает только на десктопе (экран > 768px).
  • Мобильным пользователям баннер просто показывается без затемнения и блокировки.

💡 Итого структура:
  • T886 — баннер с кратким текстом и ссылкой на попап.
  • BF503 (popup:cookie) — описание куки, кнопки согласия/отказа.
  • BF503 (popup:sogl) — предупреждение при отказе.
  • HTML-код — затемнение + блокировка прокрутки до согласия. (необходимо заменить на свой ID из блока Т886)

💬 Нужна помощь в настройке? Обратитесь к AI‑помощнику Алексу — он расскажет и покажет!
Made on
Tilda