{ Фиксация блока }
Инструкция
(скрыть)
  1. Скопируй код и вставь его в блок T123 на странице.
  2. Укажи в коде ID блока (дважды: в стилях и внутри скрипта)
  3. Измени количество пикселей, которые блок будет закреплен. Разрешения указала те же, что у тильды в зеро блоке.
  4. При необходимости блок можно закреплять при достижении верхней границы браузера, центре браузера и нижней границе.
  5. Для оптимизации загрузки страницы скопируй код 2 и вставь в HEAD сайта или страницы.

Если не работает — скинь мне ссылку на страницу.
<!-- Code by Fedyaeva -->
<script src="https://unpkg.co/gsap@3/dist/gsap.min.js"></script>
<script src="https://unpkg.com/gsap@3/dist/ScrollTrigger.min.js"></script>
<style>
    /* Если нужно, чтобы блок уезжал под нижние удали нижнюю строку */
    /* Укажи тут ID блока */
    #rec485303940 {z-index: 100; position: relative;}
</style>
<script>
    gsap.registerPlugin(ScrollTrigger);
    
    // укажи ID фиксированного меню
    let menuID = '#rec485303849';
    
    let marker = 0;
    let menuHeight = document.querySelector(menuID).clientHeight;
    
    window.addEventListener("load", () => {
        // укажи свои значения marker и высоту меню для каждого разрешения
        if (window.matchMedia("(max-width: 480px)").matches) {
            marker = 300;
        } else if (window.matchMedia("(min-width: 480px) and (max-width: 640px)").matches) {
            marker = 400;
        } else if (window.matchMedia("(min-width: 640px) and (max-width: 960px)").matches) {
            marker = 500;
        } else if (window.matchMedia("(min-width: 960px) and (max-width: 1200px)").matches) {
            marker = 600;
        } else {
            marker = 800;
        }
        
        
        let tl = gsap.timeline({
            scrollTrigger: {
                trigger: '#rec485303940', // ID закрепляемого блока
                pin: true,
                start: `top top+=${menuHeight}`, // когда закреплять, можно указать center center или bottom bottom
                end: `+=${marker}+=${menuHeight}`,
                pinSpacing: false,
                scrub: 1,
                // расскомментируй строку ниже, если нужно посмотреть от куда до куда закрепляется блок
                // markers: {startColor: "green", endColor: "red", fontSize: "12px"}
            }
        });
        
        ScrollTrigger.refresh();
    });
</script>
<link rel="preconnect" src="https://unpkg.co/" crossorigin>
Made on
Tilda