AW-Flow — Preloader — Minimal
Тонкая полоса загрузки с процентами. Исчезает сама, когда страница полностью загрузилась.
- Запуск
- на весь сайт
- Параметров
- 6
- Телефоны
- как на десктопе
- Код
- на весь сайт
Готовый код
Это тот же код, что сейчас работает в превью: значения подставлены из конструктора, внешние библиотеки не нужны.
<!-- AW-Flow — Preloader — Minimal · код для всего сайта, префикс классов: awf-preloader-minimal -->
<style>
.awf-preloader-minimal {
--awf-bg: #ffffff;
--awf-accent: #7c5cff;
--awf-bar-width: 180px;
--awf-fade: 600ms;
}
.awf-preloader-minimal {
position: fixed;
inset: 0;
z-index: 2147483647;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 14px;
background: var(--awf-bg);
color: var(--awf-accent);
transition: opacity var(--awf-fade) ease, visibility 0s linear var(--awf-fade);
}
.awf-preloader-minimal.awf-done { opacity: 0; visibility: hidden; }
.awf-preloader-minimal-bar {
position: relative;
width: var(--awf-bar-width);
max-width: 70vw;
height: 2px;
overflow: hidden;
border-radius: 2px;
}
.awf-preloader-minimal-bar::before { content: ""; position: absolute; inset: 0; background: currentColor; opacity: 0.18; }
.awf-preloader-minimal-bar i {
position: absolute;
inset: 0;
background: currentColor;
transform: scaleX(0);
transform-origin: 0 50%;
transition: transform 0.4s ease;
}
.awf-preloader-minimal-num { font: 500 12px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.12em; }
/* уважение к настройке «уменьшить движение» */
@media (prefers-reduced-motion: reduce) {
.awf-preloader-minimal, .awf-preloader-minimal-bar i { transition: none; }
}
</style>
<script>
(function () {
var CLS = 'awf-preloader-minimal';
var MIN = 900; // минимальное время показа, мс
var FADE = 600; // исчезновение, мс
var start = Date.now(), p = 0, done = false;
var pl = document.createElement('div');
pl.className = CLS;
pl.setAttribute('aria-hidden', 'true');
pl.innerHTML = '<div class="' + CLS + '-bar"><i></i></div>' + '<div class="' + CLS + '-num">0%</div>';
document.documentElement.appendChild(pl);
var bar = pl.querySelector('i'), num = pl.querySelector('.' + CLS + '-num');
function draw() {
bar.style.transform = 'scaleX(' + p + ')';
if (num) num.textContent = Math.round(p * 100) + '%';
}
// пока страница грузится — полоса плавно приближается к 90%
var timer = setInterval(function () { if (p < 0.9) { p += (0.9 - p) * 0.06; draw(); } }, 80);
function finish() {
if (done) return;
done = true;
clearInterval(timer);
p = 1;
draw();
setTimeout(function () {
pl.classList.add('awf-done');
setTimeout(function () { pl.remove(); }, FADE + 50);
}, Math.max(0, MIN - (Date.now() - start)) + 250);
}
if (document.readyState === 'complete') finish();
else window.addEventListener('load', finish);
setTimeout(finish, 10000); // страховка, если какой-то ресурс завис
})();
</script>Вставляется один раз — в код всего сайта.
Как подключить в Tilda
Этот эффект действует на весь сайт, поэтому код вставляется не в блок, а в настройки сайта.
- Откройте вставку кода. «Настройки сайта» → «Вставка кода» → поле «HTML-код для вставки внутрь head».
- Вставьте код целиком и сохраните. Код добавляется один раз и работает на всех страницах сайта.
- Переопубликуйте все страницы. Без этого код не попадёт на уже опубликованные страницы.
- Нужно только на одной странице? Тогда вставьте код в «Настройки страницы» → «Дополнительно» → «HTML-код для вставки внутрь head» и опубликуйте эту страницу.
- Хотите поменять вид? Настройте эффект здесь заново и замените старый код новым — цвета, тексты и время уже вшиты в код.
- Как он работает. Экран загрузки появляется сразу при открытии страницы и сам скрывается после полной загрузки (событие window load), но не раньше минимального времени показа.
Ещё в разделе «Интерфейс»Весь каталог