Описание небольшой модификации для фиксированного при скролле меню, выполненного на zero-блоке, а также пары интересных вариантов его дизайна и анимации.
Так как в Тильде не реализован блок старой доброй боковой панели, хочу рассказать, как самому сделать фиксированный сайдбар с помощью Zero-блока.
Блоку шапки присвойте свой класс, например, uc-diff-header, как в данном примере.
Если шапку не нужно фиксировать, а просто наложить на первый блок, то замените строку position: fixed; на position: absolute;
Обязательные условия, чтобы эффект сработал: ⚡️ Все элементы меню должны быть белого цвета; ⚡️ У шапки не должно быть фона; ⚡️ У каждого блока сайта должен быть задан фон, либо фон всего сайта.
Примечание: т.к. свойство инверсии указывается для всего блока, то и фиксировать его над сайтом нужно именно на этом уровне, поэтому внутренние настройки зеро-блока или стандартного для фиксации могут не сработать, их можно не проставлять.
🔸 Для работы кода убедитесь, что у вас подключена библиотека jQuery (Настройки сайта → Еще → Галочка «Подключить jQuery на страницах сайта»)
🔸 В коде в строчках if (text == 'NEW') { $(this).css('background-color', '#9CB18C'); } Замените слово в кавычках на свое наименование лейбла, а HEX-код на ваш цвет.
Продублируйте эти строчки друг за другом столько раз, скольким лейблам вы хотите сменить цвет.
🔸 Обратите внимание, что слово в кавычках регистрозависимо, т.е. слова 'NEW' и 'New' — это разные слова. И если в коде наименование лейбла будет указано не так, как в каталоге, то фон не поменяется.
Код работает при фильтрации, пагинации и других манипуляциях с каталогом.
<!--Code by khudova.design--> <script> $(document).ready(function() { function changeColor () { $(document.body).find('.t-store__card__mark').each(function() { var text = $(this).text();
if (text == 'NEW') { $(this).css('background-color', '#9CB18C'); }
if (text == 'ХИТ') { $(this).css('background-color', '#B39090'); }
if (text == 'SALE') { $(this).css('background-color', '#8BA2B9'); }
Перемещение поля с галочкой вниз горизонтальной zero формы
Скопировать код
🔸 Для работы кода убедитесь, что у вас подключена библиотека jQuery (Настройки сайта → Еще → Галочка «Подключить jQuery на страницах сайта»)
🔸 Вставлять код нужно в специальные подвал или шапку для карточки товара. Если у вас они не предусмотрены в верстке магазина, создайте пустой подвал, например, и кроме кода ничего там не размещайте (соответственно вместо поп-апа у вас будет отдельная страница товара).
🔸 Внутри кода вы можете отредактировать верхний отступ табов.
Шаг 1. Задайте блоку с меню класс uc-menu-on-scroll
Шаг 2. Добавьте в блок Т123 код, заменив в нем значения:
🔹 Высота вашего меню заменяется в строчках top: -100px; и menu_elem.css('top', '-100px');
🔹 Расстояние в рх от верха страницы, при котором меню скрывается в обязательном порядке, т.е. как только вы поднимитесь по странице выше, чем указанное значение, меню скроется: let triggerScroll = 500;
🔸 Для работы кода убедитесь, что у вас подключена библиотека jQuery (Настройки сайта → Еще → Галочка «Подключить jQuery на страницах сайта»)
🔸 Если вы хотите, чтобы меню было видно с самого начала, поставьте следующие значения: top: 0px; и let triggerScroll = 0;
🔸 Если вам нужно применить скрипт на два меню (например, для десктопа и телефона), просто присвойте им обоим класс uc-menu-on-scroll и задайте им видимость для разных диапазонов разрешений, они не будут никак мешать друг другу. Высоту сдвига поставьте как у самого высокого меню.
🔸 Фиксировать меню настройками Тильды не нужно, иначе код не сработает.
🔸 Если у вас меню в автоскейле, поставьте значение высоты в коде примерно раза в два больше, чем само меню.
<!--Code by khudova.design--> <style> .uc-menu-on-scroll { position: fixed; top: -100px; /*Высота меню*/ z-index: 9999; width: 100%; transition: all 0.3s ease-out; /*Время появления меню*/ } </style>
<script> var menu_elem = $(document.body).find('.uc-menu-on-scroll');
//Расстояние от верха страницы, при котором меню скрывается в обязательном порядке let triggerScroll = 500;
let lastScroll = 0;
$(document).scroll(function() { const currentScroll = $(this).scrollTop(); if (currentScroll > lastScroll || currentScroll < triggerScroll) { // down menu_elem.css('top', '-100px'); //Высота меню } else if (currentScroll < lastScroll) { // up menu_elem.css('top', '0'); } lastScroll = currentScroll; }); </script>
«Умное» меню
Скопировать код
Шаг 1. Задайте смену цвета текста (если нужно) стандартными средствами Тильды
Шаг 2. Задайте кнопке в зеро-блоке любой класс, например zero_btn, как в моем примере ИЛИ Возьмите класс кнопки из стандартного блока и поставьте его вместо выражения .zero_btn a
🔸 Для эффекта шторки слева направо замените свойства top: 100%; left: 0; на top: 0; left: -100%;
А в ховере вместо top: 0; поставьте left: 0;
🔸 Свойство background-color: #fff; задает цвет шторки