Zero Block
Click "Block Editor" to enter the edit mode. Use layers, shapes and customize adaptability. Everything is in your hands.
Tilda Publishing
create your own block from scratch
<div id="custom-pdf-modal" class="pdf-modal">
  <div class="pdf-modal-overlay"></div>
  <div class="pdf-modal-container">
    <button class="pdf-modal-close" aria-label="Закрыть">
      <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
        <line x1="18" y1="6" x2="6" y2="18"></line>
        <line x1="6" y1="6" x2="18" y2="18"></line>
      </svg>
    </button>
    
    <div class="pdf-modal-loader">
      <div class="pdf-spinner"></div>
    </div>
    
    <iframe id="custom-pdf-iframe" src="" frameborder="0" allow="autoplay"></iframe>
  </div>
</div>

<style>
:root {
  /* НАСТРОЙКИ ДИЗАЙНА ФОНА И ОКНА */
  --pdf-overlay-bg: rgba(245, 245, 247, 0.8); /* Светлый размытый фон за попапом */
  --pdf-container-bg: #ffffff;               /* Фон самого контейнера под PDF */
  --pdf-transition-speed: 250ms;             /* Скорость анимации появления */
  --pdf-border-radius: 14px;                 /* Скругление углов окна */
  
  /* НАСТРОЙКИ ШИРИНЫ (Desktop / Tablet / Mobile) */
  --pdf-width-desktop: 50%; /*Ширина для Десктопа в % */
  --pdf-width-tablet: 85%;
  --pdf-width-mobile: 92%;
  
  /* НАСТРОЙКИ ВЫСОТЫ */
  --pdf-height-desktop: 85vh; /*Высота*/
  --pdf-height-mobile: 90vh;
}

/* Базовые стили модального окна */
.pdf-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--pdf-transition-speed) ease;
}

.pdf-modal.is-active {
  opacity: 1;
  pointer-events: auto;
}

/* Задний фон-оверлей */
.pdf-modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--pdf-overlay-bg);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* Контейнер для iframe */
.pdf-modal-container {
  position: relative;
  background: var(--pdf-container-bg);
  width: var(--pdf-width-desktop);
  height: var(--pdf-height-desktop);
  border-radius: var(--pdf-border-radius);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(0, 0, 0, 0.06);
  overflow: hidden;
  transform: scale(0.96);
  transition: transform var(--pdf-transition-speed) cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

.pdf-modal.is-active .pdf-modal-container {
  transform: scale(1);
}

/* Кнопка закрытия (фиксированная геометрия круга) */
.pdf-modal-close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(0, 0, 0, 0.08);
  width: 38px;
  height: 38px;
  min-width: 38px !important;
  max-width: 38px !important;
  min-height: 38px !important;
  max-height: 38px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer;
  color: #111111;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
  transition: background var(--pdf-transition-speed), transform var(--pdf-transition-speed);
  z-index: 10;
  padding: 0 !important;
  margin: 0 !important;
  flex-shrink: 0 !important;
  box-sizing: border-box !important;
}

.pdf-modal-close:hover {
  background: #ffffff;
  transform: scale(1.05);
}

.pdf-modal-close svg {
  width: 18px !important;
  height: 18px !important;
  flex-shrink: 0 !important;
  display: block;
}

/* Элемент iframe */
#custom-pdf-iframe {
  width: 100%;
  height: 100%;
  border: none;
  opacity: 0;
  transition: opacity var(--pdf-transition-speed) ease;
}

#custom-pdf-iframe.is-loaded {
  opacity: 1;
}

/* Минималистичный лоадер */
.pdf-modal-loader {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--pdf-container-bg);
  transition: opacity var(--pdf-transition-speed) ease;
  pointer-events: none;
  z-index: 2;
}

.pdf-modal-loader.is-hidden {
  opacity: 0;
}

.pdf-spinner {
  width: 28px;
  height: 28px;
  border: 2.5px solid rgba(0, 0, 0, 0.06);
  border-radius: 50%;
  border-top-color: #111111;
  animation: pdf-spin 0.6s linear infinite;
}

@keyframes pdf-spin {
  to { transform: rotate(360deg); }
}

/* АДАПТИВНОСТЬ */
@media (max-width: 960px) {
  .pdf-modal-container {
    width: var(--pdf-width-tablet);
  }
}

@media (max-width: 640px) {
  .pdf-modal-container {
    width: var(--pdf-width-mobile);
    height: var(--pdf-height-mobile);
    border-radius: max(0px, calc(var(--pdf-border-radius) - 4px));
  }
  .pdf-modal-close {
    top: 12px;
    right: 12px;
    width: 34px;
    height: 34px;
    min-width: 34px !important;
    min-height: 34px !important;
  }
  .pdf-modal-close svg {
    width: 16px !important;
    height: 16px !important;
  }
}
</style>

<script>
document.addEventListener('DOMContentLoaded', function() {
  // Связка хэшей кнопок и оригинальных ссылок
  const pdfMap = {
      // Якорь на попап далее ссыдка на документ 
    '#popupleto': 'https://drive.google.com/file/d/1ZOzy6qgZmYQpOUQgDbAdEpu8P-9rv2UM/view?usp=sharing',
  };

  const modal = document.getElementById('custom-pdf-modal');
  const iframe = document.getElementById('custom-pdf-iframe');
  const loader = modal.querySelector('.pdf-modal-loader');
  const closeBtn = modal.querySelector('.pdf-modal-close');
  const overlay = modal.querySelector('.pdf-modal-overlay');

  function formatDriveUrl(url) {
    if (url.includes('drive.google.com') && url.includes('/view')) {
      return url.replace(/\/view(.*)$/, '/preview');
    }
    return url;
  }

  function openPdfModal(rawUrl) {
    const embedUrl = formatDriveUrl(rawUrl);
    modal.classList.add('is-active');
    document.body.style.overflow = 'hidden';
    
    loader.classList.remove('is-hidden');
    iframe.classList.remove('is-loaded');
    iframe.src = embedUrl;
  }

  function closePdfModal() {
    modal.classList.remove('is-active');
    document.body.style.overflow = '';
    
    setTimeout(() => {
      iframe.src = '';
      iframe.classList.remove('is-loaded');
    }, 250);
  }

  iframe.addEventListener('load', function() {
    if (iframe.src && iframe.src !== window.location.href) {
      loader.classList.add('is-hidden');
      iframe.classList.add('is-loaded');
    }
  });

  document.addEventListener('click', function(e) {
    const button = e.target.closest('a[href^="#popup"]');
    if (!button) return;

    const targetHash = button.getAttribute('href');
    if (pdfMap[targetHash]) {
      e.preventDefault();
      openPdfModal(pdfMap[targetHash]);
    }
  });

  closeBtn.addEventListener('click', closePdfModal);
  overlay.addEventListener('click', closePdfModal);
  document.addEventListener('keydown', function(e) {
    if (e.key === 'Escape' && modal.classList.contains('is-active')) {
      closePdfModal();
    }
  });
});
</script>