Heiligenweb | Tilda & Low-Code
59 subscribers
6 photos
7 videos
2 links
Простые и рабочие лайфхаки по кастомизации сайтов на Tilda с помощью кода. Для начинающих дизайнеров и тех, кто хочет делать сайты под себя, а не по шаблону.
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Анимация перебора чисел при скролле

Считаем от 0 до нужного числа при скролле. Без дополнительных библиотек.

<!-- Подключаем jQuery — без него анимация работать не будет.
Если jQuery уже подключён на странице, эту строку можно не добавлять -->
<script src="https://static.tildacdn.com/js/jquery-1.10.2.min.js" charset="utf-8" onerror="this.loaderr='y';"></script>

<script>
$(function () {

// Массив с настройками для каждого счётчика
// Пояснение:
// [0] — класс блока (без точки)
// [1] — до какого числа считать
// [2] — текст, который появится после числа (если нужно)
// [3] — на каком расстоянии до блока запустить анимацию
// [4] — сколько по времени идёт анимация (в миллисекундах)
const items = [
['num_1', 10, '', 100, 650],
['num_2', 246, '', 100, 750],
['num_3', 357, '', 100, 800]
];

// Перебираем каждый блок
items.forEach(elArr => {

let animated = false; // переменная, чтобы анимация запустилась только один раз

// Находим элемент по классу + добавляем .tn-atom (это нужно, если число находится внутри стандартного блока Tilda)
const $el = $('.' + elArr[0] + ' .tn-atom');

// Слушаем событие скролла
$(window).on('scroll', () => {

// Если анимация уже была — выходим
if (animated) return;

// Считаем, когда блок попадает в зону видимости (с учётом отступа elArr[3])
const triggerPoint = $el.offset().top - $(window).height() + elArr[3];

// Проверяем, достигли ли нужной позиции на странице
if ($(window).scrollTop() > triggerPoint) {
animated = true; // чтобы не запускалось снова при скролле вверх-вниз

// Анимируем число от 0 до заданного значения
$({ val: 0 }).animate({ val: elArr[1] }, {
duration: elArr[4], // сколько длится анимация
easing: 'swing', // тип анимации (плавная)

// На каждом шаге обновляем содержимое блока
step(val) {
$el.html(
String(Math.ceil(val)) // округляем до целого вверх
.replace(/(\d)(?=(\d{3})+([^\d]|$))/g, '$1 ') // добавляем пробелы в больших числах: 1000 → 1 000
+ ' ' + elArr[2] // добавляем подпись (если есть)
);
}
});
}
});
});

});
</script>


На что обратить внимание при верстке:

— У блока с числом должно быть достаточно ширины, чтобы в нем поместилось финальное значение (ширину лучше выставить вручную).
— Стартовое число (0) лучше выравнивать по правому краю, чтобы анимация выглядела стабильно.
— Для верстки используйте класс .num_1, .num_2 и так далее — имя класса вы указываете для блока с числом при верстке и добавляете в массив.

Если нужно адаптировать под свой макет — просто добавьте или измените строку в массиве. Скрипт сам всё обработает. Без дублирования кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
4👾4👨‍💻2
👩‍💻 Плавный скролл страницы

Библиотека SmoothScroll делает скролл мягким, плавным и настраиваемым. Всё просто — подключаем и задаём параметры. Работает с мышкой, стрелками на клавиатуре и тачпадом.

<!-- Подключаем библиотеку SmoothScroll с CDN -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/smoothscroll/1.4.10/SmoothScroll.min.js"
integrity="sha256-huW7yWl7tNfP7lGk46XE+Sp0nCotjzYodhVKlwaNeco="
crossorigin="anonymous"></script>

<script>
// Запускаем SmoothScroll с нашими настройками
SmoothScroll({
animationTime: 800, // Время анимации скролла (в мс). 800 = 0.8 секунды
stepSize: 60, // Расстояние одного "шага" скролла (в пикселях)

accelerationDelta: 30, // Через сколько мс начнётся ускорение при быстрой прокрутке
accelerationMax: 2, // Максимальный коэффициент ускорения

keyboardSupport: true, // Включаем плавный скролл при нажатии на клавиши ↑ ↓ PageUp/PageDown
arrowScroll: 50, // Шаг скролла при использовании стрелок на клавиатуре

pulseAlgorithm: true, // Использовать эффект "пульсации" (более естественное замедление)
pulseScale: 4, // Сила эффекта пульсации
pulseNormalize: 1, // Нормализация пульсации (оставляем как есть)

touchpadSupport: true // Поддержка тачпада (важно для ноутбуков)
});
</script>


Первое видео — скролл без кода, второе — с использованием кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥53👍2
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Наложение элементов с помощью mix-blend-mode

Если ты хочешь, чтобы текст или изображение вживались в фон, как в Figma с режимом Multiply или Overlay — это можно сделать прямо в Tilda через CSS.

1. Добавляем CSS-класс: В Zero-блоке присвой элементу класс, например: .example

2. Пишем код с нужным стилем: Создай HTML-блок и вставь код

<style>
.example {
mix-blend-mode: multiply; /* указываем тип наложения */
opacity: 0.8; /* прозрачность для лучшего эффекта */
}
</style>


3. Используем прозрачность (opacity) для достижения нужного эффекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Автоскейл и стандартные блоки

Когда в стандартных блоках включен автоскейл — элементы могут расползаться. Особенно карточки.

Решение простое — ограничить им максимальную ширину.

Что делать:

1. Открываем страницу с автоскейлом
Видим как карточки растягиваются на ширину экрана. Но последняя карточка смещается на вторую строку. Это происходит из-за того, что совокупная ширина карточек и отступов превышает 1200px (ширина рабочей области при работе с автоскейлом).

2. Подбираем ширину вручную
Открываем DevTools (F12 или ПКМ → «Просмотреть код»).
Находим карточку и через панель стилей экспериментируем с max-width.
Например, подогнали под 350px.

3. Пишем CSS с нужным классом
Создаём HTML-блок с кодом и вставляем:

<style>
@media screen and (min-width: 1200px) {
.t-col_4 {
max-width: 350px;
}
}
</style>
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3
👩‍💻 Цветная плашка под текст в стандартных блоках

Иногда стандартных настроек Тильды недостаточно, чтобы оформить элементы в стандартных блоках так, как нужно. Например, можно добавить фоновую плашку для заголовка.

Последовательность действий:

1. Определить нужный элемент в инспекторе (пример: .t225__uptitle)
2. Добавить в код ID блока, чтобы стиль применился только внутри него
3. Настроить цвет, размеры, отступы согласно макету

<style>
#rec1236955056 .t225__uptitle {
background-color: rgba(185,137,52,0.1); /* Цвет фона. rgba(R,G,B,прозрачность) */
width: 136px; /* Ширина плашки */
height: 26px; /* Высота плашки */
display: flex; /* Центрирование содержимого */
align-items: center; /* Вертикальное выравнивание */
justify-content: center; /* Горизонтальное выравнивание */
border-radius: 20px; /* Закругленные углы */
margin: 0 auto; /* Центрирование блока */
margin-bottom: 12px; /* Отступ снизу */
padding: 4px 8px; /* Внутренние отступы */
}
</style>
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4🔥1
Друзья, я создал профиль для своих работ, буду рад вам!

ссылка 🔗
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
👩‍💻 Два калькулятора на одной странице + плавное переключение между ними

Пользователь выбирает вкладку, вводит свои данные — и сразу видит результат. А фраза рядом с формой автоматически меняется. Такой формат удобнее обычных статичных расчётов — человек вовлекается, играет с параметрами, задерживается на странице дольше. Табы сделал через Zero Block + jQuery, а подстановку текста — небольшим JS-скриптом.

Последовательность действий:
1. Создаем Zero Block: один для табов, каждый новый калькулятор — это отдельный Zero, на моем примере получилось всего три.
2. Каждой кнопке присваиваем класс .tab-btn и вставляем ссылки в каждую кнопку: в первую #tab1, во вторую #tab2 и так далее.
3. Zero-блокам с калькуляторами присваиваем классы .uc-tab1, .uc-tab2 и так далее.
4. Используем код:

<style>
.tab--active {
background:#0000FF !important; /* фоновый цвет активной кнопки (синий) */
color:#fff !important; /* цвет текста активной кнопки (белый) */
}
</style>


<script>
document.addEventListener("DOMContentLoaded", function () {

const $tabs = $(".tab-btn a"); // находим все кнопки-вкладки
const $blocks = $('[class*="uc-tab"]'); // находим все блоки, которые переключаются

$blocks.hide(); // скрываем все вкладки
$(".uc-tab1").show(); // показываем первую вкладку
$('[href="#tab1"]').addClass("tab--active");// делаем первую кнопку активной

// событие при клике по вкладке
$tabs.on("click", function (e) {
e.preventDefault(); // отключаем стандартное поведение ссылки (чтобы страница не прыгала)

const target = $(this).attr("href").replace("#", "");
// получаем ID вкладки из ссылки. Было "#tab2" — станет "tab2"

$tabs.removeClass("tab--active"); // убираем активный стиль у всех кнопок
$(this).addClass("tab--active"); // добавляем активный стиль на кликнутую кнопку

$blocks.hide(); // скрываем все вкладки
$(".uc-" + target).show(); // показываем ту вкладку, на которую нажали

if (typeof t_lazyload_update === "function") t_lazyload_update();
// если на странице есть картинки с lazy-load, обновляем их подгрузку
});
});
</script>
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
5. В Zero-блоках с калькуляторами используем две формы: одну для приема данных, вторую для расчёта (в моем примере два числа перемножаются).
6. Блокам с изменяемым текстом присваиваем класс .text1 и .text2.
7. Используем код:

<script>
document.addEventListener("DOMContentLoaded", function () {
// Массив объектов, связывающий input и блок текста, который нужно менять
const pairs = [
{ input: '[name="time"]', text: ".text1" },
{ input: '[name="time_2"]', text: ".text2" }
];

// Функция для выбора правильного окончания слова "год" на русском
function getYearWord(num) {
num = Math.abs(num) % 100; // Берём последние две цифры числа, учитываем отрицательные значения
const last = num % 10; // Берём последнюю цифру
if (num >= 11 && num <= 14) return "лет"; // Исключения 11–14
if (last === 1) return "год"; // 1 год
if (last >= 2 && last <= 4) return "года";// 2,3,4 года
return "лет"; // Все остальные случаи
}

// Функция для привязки динамического текста к input
function bindDynamicText(inputSelector, textSelector) {
const input = document.querySelector(inputSelector); // Находим input по селектору
const block = document.querySelector(textSelector); // Находим блок текста
if (!input || !block) return; // Если не найден input или блок — ничего не делаем

const defaultText = block.textContent; // Сохраняем исходный текст блока

// Обработчик события input — срабатывает при каждом изменении значения
input.addEventListener("input", () => {
const v = input.value.trim(); // Убираем лишние пробелы
// Если поле не пустое — показываем "Через X год/года/лет", иначе возвращаем исходный текст
block.textContent = v ? `Через ${v} ${getYearWord(v)}` : defaultText;
});
}

// Применяем функцию к каждой паре input + блок текста
pairs.forEach(p => bindDynamicText(p.input, p.text));
});
</script>

<style>
/* Стили для блоков текста */
.text1, .text2 {
font-family: 'Exo 2', sans-serif; /* Шрифт Exo 2 */
font-size: 24px; /* Размер текста */
line-height: 1.4; /* Межстрочный интервал */
}
</style>
2👍2
🌎 Пришло время навести тут порядок и добавить навигацию!

🔹 Анимация перебора чисел при скролле
🔹 Плавный скролл страницы
🔹 Наложение элементов с помощью mix-blend-mode
🔹 Автоскейл и стандартные блоки
🔹 Цветная плашка под текст в стандартных блоках
🔹 Два калькулятора на одной странице + плавное переключение между ними

Посты с простыми и самыми распространенными приёмами можно найти по тегу #bazovii

А еще можно написать мне по поводу сотрудничества в проектах. Или просто посмотреть мои работы 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Heiligenweb | Tilda & Low-Code pinned «🌎 Пришло время навести тут порядок и добавить навигацию! 🔹 Анимация перебора чисел при скролле 🔹 Плавный скролл страницы 🔹 Наложение элементов с помощью mix-blend-mode 🔹 Автоскейл и стандартные блоки 🔹 Цветная плашка под текст в стандартных блоках 🔹 Два калькулятора…»
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Как (и зачем?) найти CSS-класс чего угодно на сайте

Если хочешь поменять внешний вид элемента на сайте — это делается через CSS. Проще всего обратиться к элементу по его CSS-классу.

Например, все кнопки с классом .btn можно перекрасить одним действием — задать цвет для класса, и все кнопки станут, например, красными.

В Zero-блоке класс можно задать вручную. А вот в стандартных блоках Тильды — класс уже присваивается автоматически, и его нужно найти.

Так вот как:

1. Открой код страницы в Chrome: правая кнопка мыши → «Посмотреть код».

2. Наведи курсор на элемент — он подсветится в коде.

3. В HTML найдёшь строку вроде:
<div class="класс_кнопки"></div>


4. Всё, что внутри class="...", — это и есть классы элемента.

5. Теперь можешь добавить свои стили:
.класс_кнопки {
background-color: red;
color: white;
}


6. Вы великолепны! 😎

#bazovii
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1
👩‍💻 Меняем цвет любого текста на градиент

В стандартных блоках Тильды нет встроенной опции для градиентного цвета текста — исправляем это за пару минут через CSS! Работает и в Zero-блоках. Главное: текст в отдельном элементе (заголовок, шейп или параграф). Можно линейный или радиальный градиент, с анимацией или без.

Последовательность действий:

1. Находим CSS-класс (и ID блока)
ПКМ на текст → «Посмотреть код». Наведи — увидишь класс вроде .t-title, .tn-atom__text и ID блока, например #rec123456789.
2. Создаём HTML-блок и вставляем код
Замени .your-class на свой класс (или #id_блока .css-класс-элемента для точности в стандартных блоках).

<style>
#id_блока .css-класс-элемента {
background: radial-gradient(circle, rgba(63,94,251,1) 0%, rgba(252,70,107,1) 100%);
background-clip: text;
color: transparent;
}
</style>


3. Что происходит под капотом:
— Добавляем градиент на фон элемента.
— Обрезаем фон по контуру текста (background-clip: text).
— Делаем текст прозрачным, чтобы градиент "просвечивал".

Готово! Текст сияет градиентом, притягивает взгляд и выглядит современно. Экспериментируй с цветами/углами — под любой макет подойдёт. В Zero просто присвой класс шейпу с текстом. 😉

#bazovii
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🌭1
🎄 Друзья, поздравляю всех с Новым Годом!

Желаю вам в новом году крепкого здоровья, успехов во всех делах, новых крутых проектов! Побольше времени с семьей и друзьями, побольше отдыха!

Всем удачи в новом году! 🫂
Please open Telegram to view this post
VIEW IN TELEGRAM
6