Личный кабинет
Модификации
Тарифы
Вопросы и ответы
Написать в поддержку
Вопросы и ответы
Модификации
Личный кабинет
Тарифы
Полезные сервисы

Появление текста из блюра

Модификатор используется как альтернатива печатной машинке
Описание
id номер:
67536209
Шаблон страницы
Номер скопирован!
Скопировать номер
  • Добавляем текстовый элемент к которому применяем эффект

  • Задаем ему класс btn-sonneto-blur
Код скопирован!
Скопировать код
Создаем блок T123 и копируем в него код
1 шаг
<!-- Модификация для Тильды. Появление текста из блюра http://sonneto-design.ru/subscription/blurtext -->
<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/ScrollTrigger.min.js"></script>

<style>
.btn-sonneto-blur .tn-atom {
display: block;
white-space: normal;
word-break: break-word;
}

.btn-sonneto-blur .tn-atom span {
display: inline-block; /* Чтобы сохранялся перенос */
white-space: inherit;
}
</style>

<script>
document.addEventListener("DOMContentLoaded", function () {
gsap.registerPlugin(ScrollTrigger);

document.querySelectorAll(".btn-sonneto-blur .tn-atom").forEach((Ttext) => {
const originalHTML = Ttext.innerHTML;
Ttext.innerHTML = "";

function wrapNodes(node) {
if (node.nodeType === Node.TEXT_NODE) {
return node.nodeValue.split(/(\s+)/).map(word => {
if (word.trim() === "") return document.createTextNode(word); // Сохраняем пробелы

const wordSpan = document.createElement("span");
wordSpan.style.display = "inline-block"; // Оставляем переносы

word.split("").forEach(char => {
const charSpan = document.createElement("span");
charSpan.textContent = char;
wordSpan.appendChild(charSpan);
});

return wordSpan;
});
} else if (node.nodeType === Node.ELEMENT_NODE && node.tagName !== "BR") {
const newElement = document.createElement(node.tagName);
Array.from(node.attributes).forEach(attr => newElement.setAttribute(attr.name, attr.value));
node.childNodes.forEach(child => wrapNodes(child).forEach(span => newElement.appendChild(span)));
return [newElement];
} else if (node.tagName === "BR") {
return [document.createElement("br")];
}
return [];
}

const tempDiv = document.createElement("div");
tempDiv.innerHTML = originalHTML;
tempDiv.childNodes.forEach(node => wrapNodes(node).forEach(span => Ttext.appendChild(span)));

const Tletters = Ttext.querySelectorAll("span span");

gsap.from(Tletters, {
filter: "blur(0.15em)",
stagger: { from: "left", each: 0.05 }, // Анимация по буквам
duration: 1.25,
ease: "power2.inOut",
scrollTrigger: {
trigger: Ttext,
start: "top 80%",
toggleActions: "play none none none"
}
});

gsap.from(Tletters, {
xPercent: 10,
opacity: 0,
stagger: { from: "left", each: 0.05 },
duration: 1,
ease: "power2.out",
scrollTrigger: {
trigger: Ttext,
start: "top 80%",
toggleActions: "play none none none"
}
});
});
});

</script>
Для корректной работы блоков подключите библиотеку jQuery: Настройки сайта -> Еще -> Подключить jQuery на страницах сайта
Важно
Создаем новую страницу на сайте
1 шаг
Скроллим в самый низ и нажимаем кнопку «Указать ID шаблона»
2 шаг
В графе указываем номер шаблона (он указан в инструкции)

Нажимаем кнопку «Выбрать»
3 шаг
Добавление страниц по id номеру возможно только при оплаченном тарифе на Tilda Personal и выше.
Важно
Вам также может быть интересно:
Pro подписка
Подсветка фона у кнопки
Эффекты кнопок
Pro подписка
Подсветка фона у кнопки
Эффекты кнопок
Текст скопирован в буфер обмена!
Текст скопирован в буфер обмена!