Нужна модификация для сайта на Тильде? Напиши мне в ТГ, обсудим =)

.сборник {

css: и js;

для: Тильды;}

//сборник использованных мной решений при верстке на Тильда

Получил пользу от всех этих букв и закорючек?))
Я рад, что у тебя все получилось. Знание - сила, а учение - свет. Я тоже учусь и оплачиваю курс по фронтенд-разработке. Ваша поддержка даст стимул публиковать новые модификации, а может и даже снимать ролики на ютуб))

[ Новые модификации ]

    /*Заливка текста градиентом*/
    <style>
    #rec223769201 h2 { /*Указываем идентификатор и/или тег и/или селектор класса текста*/
         background: radial-gradient(96% 384% at 1.5% 10%, #EAE5B9 11.46%, #B9EAE4 50%, #EAB9E5 90.1%);
         -webkit-background-clip: text;
         -webkit-text-fill-color: transparent;
    }
    </style>
    /*Текст с заливкой градиентом. При наведении на текст заливка смещается.*/
    <style>
    h2 {
        -webkit-background-clip: text!important;
        -webkit-text-fill-color: transparent;
        background: linear-gradient(to right , #BBB086 , #000000, #BBB086 60%);
        background-position: 0 0;
        transition: all 0.8s ease-in-out;
    }
    h2:hover {
        background-position: 500px!important; /*Дистанция в пикселях на сколько сдвинется фон при наведении*/
    }
    </style>
    /*Прозрачный текст*/
    <style>
    #rec93790438 .text { /*Указываем селектор элемента (текста)*/
        background: #fff; /*Фон только белый. При выборе других цветов фон приобретает прозрачность вплоть до 0%. Цвет текста ставим #000000.*/
        mix-blend-mode: screen;
        display:block !important;
        padding: 20px 0;
    }
    </style>
    /*Прозрачный текст с контуром*/
    <style>
    #rec213603084 .t001__title .tn-atom {
        -webkit-text-stroke-width: 1px; /*Толщина контура*/
        -webkit-text-stroke-color: #ff0000; /*Цвет контура*/
         color: transparent!important;
    }
    </style>
    /*Анимация текста. Сдвиг и появление обводки слева.*/
    <style>
    /*Задаём вид и время анимации*/
    #rec221407994 .glav .tn-atom {
        transition: ease-in-out 0.5s;
    }
    /*Эффекты при наведении*/
    #rec221407994 .glav:hover .tn-atom { 
        color: #f5e503; /*Цвет текста*/
        padding-left: 5px; /*Сдвиг вправо*/
        border-left: 3px solid #f5e503; /*Левая граница*/
        font-weight: 600;
    } 
    </style>
    /*Прозрачный фон при наведении на кнопку*/
    <style>
    #rec215068614 .t-submit:hover { /*Указываем идентификатор и/или селектор класса кнопки*/
        background-color: transparent!important;
    }
    </style>
    /*Добавляем на фон блока любую картинку*/
    <style>
    #rec188967014 {
        background-image: url(http://lubowl.ucoz.ru/kartinki/rasdelitel.png);
        background-repeat: no-repeat;
        background-position: center center;
        position: relative;
        background-attachment: scroll;
        background-size: cover;
    }
    </style>
    /*Фиксация бекграунда для мобильных устройств*/
    Свойство background-attachment на мобильных не работает! Приходится использовать такой способ, как в примере.
    <style>
    @media screen and (max-width: 1199px) {
    #rec247728081 .t396__carrier {
        position: fixed;
        z-index: -1;
    }
    }
    </style>
    /*Эффект размытия (блюр) для шейпа*/
    Чтобы увидеть эффект размытия, у шейпа должна быть задана прозрачность!
    <style>
    #rec265928400 .t830m {
        background-color: rgb(2 2 2 / 0.1);
        backdrop-filter: blur(20px);
        -webkit-backdrop-filter: blur(20px);
    }
    </style>
    /*Анимированный градиент на фон шейпа*/
    Можно задать ширину и высоту html элемента 100% и установить window container и получиться заливка всего блока.
    <script src='https://cdnjs.cloudflare.com/ajax/libs/granim/1.1.1/granim.min.js'></script>
    
    <canvas id="canvas-basic"></canvas>
    <style>
    #canvas-basic {
        position: absolute;
        display: block;
        width: 100%;
        height: 100%;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
    }
    </style>
    <script>
        var granimInstance = new Granim({
        element: '#canvas-basic',
        name: 'basic-gradient',
        direction: 'left-right',
        opacity: [1, 1],
        isPausedWhenNotInView: true,
        states : {
            "default-state": {
                gradients: [
                    ['#AA076B', '#61045F'],
                    ['#02AAB0', '#00CDAC'],
                    ['#DA22FF', '#9733EE']
                ]
            }
        }
    });
    </script>
    Нажми на меня
    There is no design without discipline. There is no discipline without intelligence.
    /*Липкий тапбар внизу экрана*/
    <style>
    #rec221626223  {
        position: fixed;
        width: 100%;
        z-index: 999;
        bottom: 0px;
        box-shadow: 0 -2px 8px 0 rgba(0, 0, 0, 0.4); /*Задаем тень для блока, если надо*/
    }
    </style>
    /*Липкий тапбар внизу экрана с привязкой к скроллу через скрипт*/
    <style>
    #rec221609739  {
        position: fixed;
        width: 100%;
        bottom: 0px;
        z-index: 999;
        transition: all .3s ease; /*Задаем функцию плавности и скорость анимации тапбара*/ 
        box-shadow: 0 -2px 8px 0 rgba(0, 0, 0, 0.4); /*Задаем тень для всего блока*/
    }
    #rec221609739.out {
        opacity: 0; /*Задаем свойство и значение завершения анимации тапбара*/
        pointer-events: none;
    }
    </style>
    
    <script>
    var header = $('#rec221609739'),
    	scrollPrev = 0;
    
    $(window).scroll(function() {
    	var scrolled = $(window).scrollTop();
    //значение 50 здесь означает, что после прокрутки страницы вверх на 50px начнут работать условия скрипта и тапбар скроется.
    	if ( scrolled > 50 && scrolled > scrollPrev ) { 
    		header.addClass('out');
    	} else {
    		header.removeClass('out');
    	}
    	scrollPrev = scrolled;
    });
    //Еще один вариант скрытия тапбара. Заменить в коде выше соответствующие строки кода.
            if ( scrolled > 100 && scrolled > scrollPrev ) {
                    $('#rec221609739').fadeOut();
            } else {
                    $('#rec221609739').fadeIn();
            }
    </script>
    /*Своя кнопка "Наверх"*/
    <!-- Этот код добавляем в html элемент в zero block -->
    <a id="upbutton" href="#" onclick="smoothJumpUp(); return false;">
    <img src="https://static.tildacdn.com/tild3363-3465-4339-a162-373233616265/ion_chevron-up_2.svg" width="50px" border="none" title="Наверх">
    </a>
    
    <!-- Стили и скрипт добавляем в блок Т123 -->
    <style>
    #upbutton {
        height: 50px;
        bottom: 0px;
        right: 0px;
        cursor: pointer;
        visibility: hidden;
        position: fixed;
        z-index: 899!important;
    }
    .fadeIn {
      opacity: 0;
      transition:all .4s ease-in;
    -webkit-transition:all .4s ease-in;
    
    }
    .fadeOut {
      opacity: 1;
      transition:all .4s ease-out;
    -webkit-transition:all .4s ease-out;
    }
    </style>
    
    <script>
        var smoothJumpUp = function() {
            if (document.body.scrollTop > 0 || document.documentElement.scrollTop > 0) {
                window.scrollBy(0,-100); //чем ближе значение -100 к нулю, тем медленнее будет прокручиваться страница наверх. Оптимальные значения от -100 до -500.
                setTimeout(smoothJumpUp, 10);
            }
        }
        
        window.onscroll = function() {myFunction()};
        function myFunction() {
        if (document.body.scrollTop > 0 || document.documentElement.scrollTop < 5000) {//здесь 5000 это кол-во пикселей, после прокрутки которых, появится кнопка "Наверх".
            document.getElementById("upbutton").className = "fadeIn";
            document.getElementById("upbutton").style.visibility = "hidden";
        } else {
            document.getElementById("upbutton").className = "fadeOut";
            document.getElementById("upbutton").style.visibility = "visible";
        }
    }
    </script>
    /*Кнопка с градиентом и анимацией.*/
    Добавляем код в блок Т123 или в html элемент в zero block.
    <a href="#" class="btn">
      <svg width="210" height="60">
        <defs>
            <linearGradient id="grad1">
                <stop offset="0%" stop-color="#FF8282"/>
                <stop offset="100%" stop-color="#E178ED" />
            </linearGradient>
        </defs>
         <rect x="5" y="5" rx="25" fill="none" stroke="url(#grad1)" width="200" height="50"></rect>
      </svg>
        <span>Отправить</span>
    </a>
    
    <style>
    .btn {
        position: relative;
        display: inline-block;
        width: 210px;
        height: 60px;
        font-size: 1em;
        font-weight: bold;
        line-height: 60px;
        text-align: center;
        text-transform: uppercase;
        background-color: transparent;
        cursor: pointer;
        text-decoration: none;
        font-family: 'Halvar-SuisseIntl', Arial, sans-serif;
        font-weight: 900;
        font-size: 17px;
        letter-spacing: 0.045em;
    }
    .btn svg {
        position: absolute;
        top: 0;
        left: 0;
    }
    .btn svg rect {
        stroke-width: 4;
        stroke-dasharray: 353, 0;
        stroke-dashoffset: 0;
        -webkit-transition: all 600ms ease;
        transition: all 600ms ease;
    }
    .btn span{
      background: -moz-linear-gradient(left,  rgba(255,130,130,1) 0%, rgba(225,120,237,1) 100%);
      background: -webkit-linear-gradient(left,  rgba(255,130,130,1) 0%,rgba(225,120,237,1) 100%);
      background: linear-gradient(to right,  rgba(255,130,130,1) 0%,rgba(225,120,237,1) 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    .btn:hover svg rect {
        stroke-width: 4;
        stroke-dasharray: 132, 543; /*первое значение отвечает за длину нижнего бордера в конце анимации*/
        stroke-dashoffset: 437;
    }
    </style>
    Отправить
    /*Горизонтальная прокрутка для блока ME602*/
    <style>
    #rec248761810 {
        overflow: auto;
    }
    @media screen and (max-width: 960px) {
    #rec248761810 .t395__wrapper {
        display: inline-block;
        margin: 0 10px; /*Отступ от края экрана*/
        width: max-content;
    }
    #rec248761810 .t395__wrapper_mobile {
        display: none;
    }
    #rec248761810 .t395__col {
        padding: 0;
    }
    #rec248761810 .t395__width_16 {
        width: auto; /*Ширина вкладки зависит от длины текста*/
    }
    }
    </style>
    /*Горизонтальная прокрутка для блока ME603*/
    <style>
    #rec248763405 {
        overflow: auto;
    }
    @media screen and (max-width: 960px) {
    #rec248763405 .t397__wrapper {
        display: block;
    }
    #rec248763405 .t397__wrapper_mobile {
        display: none;
    }
    #rec248763405 .t397__col {
        padding: 0;
    }
    #rec248763405 .t397__title {
        padding: 0 20px;
    }
    }
    </style>
    /*Адаптация меню ME201 для экранов 640px - 980px*/
    <style>
    #rec247605786 .t456__leftwrapper {
        padding-right: 50px;
    }
    @media screen and (max-width: 980px) {
    #rec247605786 .t456__maincontainer {
        display: flex;
    }
    #rec247605786 .t456__leftwrapper {
        padding: 0px;
        display: flex;
    }
    #rec247605786 .t456__imglogo {
        padding: 0;
    }
    #rec247605786 .t456__list {
        display: flex;
        width: max-content;
    }
    #nav247605786 {
        display: none;
        position: fixed;
    }
    }
    </style>
    
    <script>
    //код для плавного появления и исчезания меню при прокрутке
    $(window).scroll(function(){
        if ($(this).scrollTop() > 700) { //задаем дистанцию появления меню в px 
            $('#nav247605786').fadeIn();
        } else {
            $('#nav247605786').fadeOut();
        }
    });
    //код отвечающий за подсвечивание активных ссылок при прокрутке
    function t456_checkAnchorLinks(recid){
        if($(window).width()>=640){
            var t456_navLinks=$("#rec"+recid+" .t456__list_item a:not(.tooltipstered)[href*='#']");
        if(t456_navLinks.length>0){
            t456_catchScroll(t456_navLinks)}
        }
    }
    </script>
    /*Модификация слайдера GL20 для экранов >768px*/
    Меняем Block ID на свой.
    <style>
    @media screen and (min-width: 768px) {
    #rec352093639 .t-slds {
        width: 1200px;
        margin: 0 auto;
    }
    #rec352093639 .t604__imgwrapper .t-slds__bgimg {
        border-radius: 25px;
        transform: scale(0.8);
        transition: .6s ease;
    }
    #rec352093639 .t-slds__item_active .t604__imgwrapper .t-slds__bgimg {
        transform: scale(1);
    }
    #rec352093639 .t-slds__bullet_active .t-slds__bullet_body {
        width: 28px;
    }
    #rec352093639 .t-slds__bullet_body {
        width: 16px;
        -webkit-transition: all ease-in-out .6s;
        -moz-transition: all ease-in-out .6s;
        -o-transition: all ease-in-out .6s;
        transition: all ease-in-out .6s;
    }
    #rec352093639 .t-slds__arrow_wrapper {
        width: calc(100% / 2 - 385px) !important;
    }
    #rec352093639 .t-container:before, #rec352093639 .t-container:after {
        display: block;
        position: absolute;
        width: 50px;
        height: 100%;
        z-index: 10;
    }
    #rec352093639 .t-container:before {
        background-image: linear-gradient( 90deg, #f9f9f9, rgb(249 249 249 / 0%));
    }
    #rec352093639 .t-container:after {
        top: 0;
        right: 0;
        background-image: linear-gradient( 270deg, #f9f9f9, rgb(249 249 249 / 0%));
    }
    }
    @media (min-width: 768px) and (max-width: 1199px) {
    #rec352093639 .t-slds {
        width: inherit;
    }
    #rec352093639 .t-container:before {
        left: 0;
    }
    }
    </style>

    До

    После

    /*Lottie анимация!*/
    В данном примере анимация запускается сразу при загрузке страницы.
    <!-- Этот код вставляем в html контейнер внутри zero block. Важно помнить, что от ширины html контейнера зависит размер анимации! -->
    <div id="lottie-1"></div>
    
    <!-- Этот код загружает библиотеку. Его вставляем один раз на страницу в блок Т123. -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.7.5/lottie.min.js"></script>
    
    <!-- Этот код тоже вставляем в html блок Т123. -->
    <script>
        bodymovin.loadAnimation({
        container: document.getElementById("lottie-1"),
        renderer: "svg",
        loop: false,
        autoplay: true,
        path: "https://gist.githubusercontent.com/bocmanbarada/ef40e0c1febb41aa601ddfa419a42631/raw/7e0c251a9f2f9dc780a8e75f3e9145f938f8889c/dezinfector.json"
        });
    </script>
    
    <!-- Вторая анимация и так далее по образцу. -->
    <div id="lottie-2"></div>
    
    <!-- Каждую новую анимацию лучше вставлять в отдельный html блок T123, а не то могут быть конфликты. -->
    <script>
        bodymovin.loadAnimation({
        container: document.getElementById("lottie-2"),
        renderer: "svg",
        loop: true,
        autoplay: true,
        path: "https://gist.githubusercontent.com/bocmanbarada/080b7ce42348f81df1d0b7f419d1816f/raw/23694b2b2f5ed4a7cf3fd467e6376933ab050f8e/choose.json"
        });
    </script>
    Другой вариант с загрузкой библиотеки lottie-web, вместо bodymovin.
    <!-- Этот код вставляем в html контейнер внутри zero block. Важно помнить, что от ширины html контейнера зависит размер анимации! -->
    <div id="lottie-1"></div>
    
    
    <!-- Этот код загружает библиотеку. Его вставляем один раз на страницу в блок Т123. -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/lottie-web/5.7.5/lottie_light.min.js"></script>
    
    <!-- Этот код тоже вставляем в html блок Т123. -->
    <script>
        lottie.loadAnimation({
        container: document.getElementById("lottie-1"),
        renderer: "svg",
        loop: true,
        autoplay: true,
        path: "https://gist.githubusercontent.com/bocmanbarada/e75f30157d2acc2e1d5a084e53313de8/raw/70c1bdf9da8882aadec3ca73983b8768ddc124ff/fuckoff2020"
        });
    </script>
    В данном примере анимация привязана к прокрутке страницы.
    Приведено 2 примера анимации.
    <!-- Этот код загружает библиотеку. Его вставляем один раз на страницу в блок Т123. -->
    <script src="https://unpkg.com/@lottiefiles/lottie-interactivity@latest/dist/lottie-interactivity.min.js"></script>
    
    <!-- Первая анимация -->
    
    <!-- Этот код вставляем в html элемент в zero block. -->
    <lottie-player 
        id="firstLottie" 
        src="https://assets5.lottiefiles.com/packages/lf20_aktnntgz.json"></lottie-player>
    <!-- Этот код вставляем в html блок Т123. -->
    <script>
    LottieInteractivity.create({
      player: "#firstLottie",
      mode:"scroll",
      actions: [
        {
          visibility: [0, 0.1], //первые 10% высоты экрана при прокрутке страницы анимация не начинается
          type: "stop",
          frames: [0]
        },
        {
          visibility: [0.1, 0.5], //далее 40% высоты экрана при прокрутке страницы происходит полный цикл анимации
          type: "seek",
          frames: [0, 100]
        },
        {
          visibility: [0.5, 0.9], //и еще один цикл анимации за еще 40% прокрутки экрана
          type: "seek",
          frames: [0, 100]
        },
        {
          visibility: [0.9, 1.0], //оставшиеся 10% высоты экрана анимация снова неподвижна
          type: "stop",
          frames: [100]
        }
      ]  
    });
    </script>
    
    <!-- Вторая анимация -->
    
    <!-- Этот код вставляем в html элемент в zero block. -->
    <lottie-player 
        id="secondLottie" 
        src="https://assets1.lottiefiles.com/packages/lf20_HNjt7n.json"></lottie-player>
    <!-- Этот код вставляем в html блок Т123. -->
    <script>
    LottieInteractivity.create({
      player: "#secondLottie",
      mode:"scroll",
      actions: [
        {
          visibility: [0, 0.15], //первые 15% высоты экрана при прокрутке страницы анимация не начинается
          type: "stop",
          frames: [0]
        },
        {
          visibility: [0.15, 0.85], //далее 70% высоты экрана при прокрутке страницы происходит полный цикл анимации
          type: "seek",
          frames: [0, 124]
        },
        {
          visibility: [0.85, 1.0], //оставшиеся 15% высоты экрана анимация снова неподвижна
          type: "stop",
          frames: [124]
        }
      ]  
    });
    </script>
    В данном примере анимация срабатывает по клику на элемент.
    <!-- Этот код вставляем в html элемент в zero block. -->
    <div class="bodymovinanim"></div>
    
    <!-- Этот код загружает библиотеку. Его вставляем один раз на страницу в блок Т123. -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.7.5/lottie.min.js"></script>
    
    <!-- Этот код тоже вставляем в html блок Т123. -->
    <script>
    let iconSkipForward = document.querySelector('.bodymovinanim');
    
        let animationSkipForward = bodymovin.loadAnimation({
                container: iconSkipForward,
                renderer: 'svg',
                loop: false,
                autoplay: false,
                path: "https://raw.githubusercontent.com/thesvbd/Lottie-examples/master/assets/animations/skip-forward.json"
        });
    
          iconSkipForward.addEventListener('click', function() {
          animationSkipForward.playSegments([0,60], true);
        });
    </script>
    В данном примере анимация проигрывается по первому клику от начала до конца. По второму клику в обратном направлении.
    <!-- Этот код вставляем в html элемент в zero block. -->
    <div class="bodymovinanim1"></div>
    
    <!-- Этот код загружает библиотеку. Его вставляем один раз на страницу в блок Т123. -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.7.5/lottie.min.js"></script>
    
    <!-- Этот код тоже вставляем в html блок Т123. -->
    <script>
        let iconMenu = document.querySelector('.bodymovinanim1');
    
        let animationMenu = bodymovin.loadAnimation({
                container: iconMenu,
                renderer: 'svg',
                loop: false,
                autoplay: false,
                path: "https://gist.githubusercontent.com/bocmanbarada/c1ec18ec68bfadc507121f68dc46d0a6/raw/9d6fbfa915800cc80ff9cc350bf81fbd822f36f4/menu2.json"
        });
    
        var directionMenu = 1;
          iconMenu.addEventListener('click', (e) => {
          animationMenu.setDirection(directionMenu);
          animationMenu.play();
          directionMenu = -directionMenu;
        });
    </script>
    В данном примере анимация проигрывается по кругу при наведении мыши. Если мышь не наведена на элемент, анимация стоит на паузе.
    <!-- Этот код вставляем в html элемент в zero block. -->
    <div class="scrollingArea"></div>
    
    <!-- Этот код загружает библиотеку. Его вставляем один раз на страницу в блок Т123. -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.7.5/lottie.min.js"></script>
    
    <!-- Этот код тоже вставляем в html блок Т123. -->
    <script>
    var loader = document.getElementsByClassName("scrollingArea");
    function loadBMAnimation(loader) {
    var animation = bodymovin.loadAnimation({
      container: loader,
      renderer: "svg",
      loop: true,
      autoplay: false,
      path: "https://assets1.lottiefiles.com/packages/lf20_nwjbhlzr.json"
    });
     loader.addEventListener("mouseenter", function() {
       animation.play();
     });
     loader.addEventListener("mouseleave", function() {
       animation.pause();
     });
    }
    for (var i = 0; i < loader.length; i++) {
    loadBMAnimation(loader[i]);
    }
    </script>
    /*Якорные ссылки*/
    Якорную ссылку можно задать на любой элемент у которого есть идентификатор id.
    Например ссылка на форму - #form241974706.

    Как поставить якорь в Zero Block?
    Добавляем html элемент в нужном месте в zero block и добавляем код <a name="anchor"></a> где anchor имя якоря.
    Ссылка на якорь соответственно #anchor.

    Так же, через скрипт, можно добавить якорь к классу!
    <script>
    $( document ).ready(function() {
        $(".tn-elem__2125347751605182698629").addClass('parcon2'); //Добавляем элементу свой класс
        $(".tn-elem__2136194601595378227976").append('<a name="anchor">'); //Добавляем элементу якорь
        $(".parcon2").append('<a name="anchor2">'); //Добавляем своему классу якорь
    });
    </script>