Без внешних зависимостей. Без хранения контента. ============================================================ */ (function () { 'use strict'; /* ---------------------------------------------------------- 1. HEADER — добавление тени при скролле ---------------------------------------------------------- */ function initHeaderScroll() { var header = document.querySelector('.ossn-header'); if (!header) return; function update() { var scrolled = window.pageYOffset > 10; header.style.transition = 'box-shadow 0.2s ease'; header.style.boxShadow = scrolled ? '0 1px 16px rgba(0,0,0,0.09)' : 'none'; } window.addEventListener('scroll', update, { passive: true }); update(); } /* ---------------------------------------------------------- 2. EVENTS — стрелка → на ссылках карточек Запускается дважды: сразу и с задержкой (Tilda грузит асинхронно) ---------------------------------------------------------- */ function enhanceCardLinks() { var selector = [ '.ossn-events .t-card__link', '.ossn-events .t-cards__link', '.ossn-events [class*="__link"]', ].join(', '); document.querySelectorAll(selector).forEach(function (link) { if (link.dataset.ossnEnhanced) return; link.dataset.ossnEnhanced = '1'; var arrow = document.createElement('span'); arrow.setAttribute('aria-hidden', 'true'); arrow.style.cssText = 'display:inline-block;margin-left:4px;transition:transform 0.18s ease;'; arrow.textContent = '→'; link.appendChild(arrow); link.addEventListener('mouseenter', function () { arrow.style.transform = 'translateX(4px)'; }); link.addEventListener('mouseleave', function () { arrow.style.transform = 'translateX(0)'; }); }); } /* ---------------------------------------------------------- 3. СЕКЦИИ — лёгкое появление при прокрутке (fade-in) Только если браузер поддерживает IntersectionObserver ---------------------------------------------------------- */ function initFadeIn() { if (!window.IntersectionObserver) return; var targets = document.querySelectorAll( '.ossn-events, .ossn-education, .ossn-news, .ossn-partners' ); if (!targets.length) return; /* Инжектируем стили только один раз */ if (!document.getElementById('ossn-fadein-style')) { var style = document.createElement('style'); style.id = 'ossn-fadein-style'; style.textContent = '.ossn-fade { opacity: 0; transform: translateY(16px); transition: opacity 0.5s ease, transform 0.5s ease; }' + '.ossn-fade.ossn-visible { opacity: 1; transform: translateY(0); }'; document.head.appendChild(style); } var observer = new IntersectionObserver( function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { entry.target.classList.add('ossn-visible'); observer.unobserve(entry.target); } }); }, { threshold: 0.08 } ); targets.forEach(function (el) { el.classList.add('ossn-fade'); observer.observe(el); }); } /* ---------------------------------------------------------- Инициализация ---------------------------------------------------------- */ function init() { initHeaderScroll(); enhanceCardLinks(); initFadeIn(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } /* Tilda подгружает карточки асинхронно — повторный запуск */ setTimeout(function () { enhanceCardLinks(); }, 1200); })();
Развитие кардиологии, образование врачей и научный диалог с 2002 года
Общество специалистов по сердечной недостаточности объединяет врачей, исследователей и экспертов, заинтересованных в развитии современной кардиологической помощи.
Мы поддерживаем образовательные инициативы, научные мероприятия и обмен клиническим опытом между специалистами по всей России.
Подробнее об ассоциацииКлинические рекомендации
Актуальные протоколы и стандарты лечения на основе доказательной медицины
Непрерывное образование
Вебинары, симпозиумы и курсы повышения квалификации для специалистов
Научная деятельность
Исследования, публикации и участие в международном научном диалоге
Присоединяйтесь к профессиональному сообществу кардиологов России и получите доступ к эксклюзивным материалам и мероприятиям.