AW-Flow — Custom Cursor
Точка и кольцо вместо системного курсора: кольцо догоняет с задержкой и увеличивается над ссылками.
- Запуск
- на весь сайт
- Параметров
- 7
- Телефоны
- как на десктопе
- Код
- на весь сайт
Готовый код
Это тот же код, что сейчас работает в превью: значения подставлены из конструктора, внешние библиотеки не нужны.
<!-- AW-Flow — Custom Cursor · код для всего сайта, префикс классов: awf-custom-cursor -->
<style>
.awf-custom-cursor-dot, .awf-custom-cursor-ring {
--awf-dot: 8px;
--awf-ring: 38px;
--awf-color: #7c5cff;
--awf-smoothing: 0.16;
--awf-hover-scale: 1.8;
}
.awf-custom-cursor-dot,
.awf-custom-cursor-ring {
position: fixed;
left: 0;
top: 0;
z-index: 2147483647;
pointer-events: none;
opacity: 0;
transition: opacity 0.25s ease;
}
.awf-custom-cursor-dot {
width: var(--awf-dot);
height: var(--awf-dot);
margin: calc(var(--awf-dot) / -2) 0 0 calc(var(--awf-dot) / -2);
border-radius: 50%;
background: var(--awf-color);
}
.awf-custom-cursor-ring {
width: var(--awf-ring);
height: var(--awf-ring);
margin: calc(var(--awf-ring) / -2) 0 0 calc(var(--awf-ring) / -2);
}
.awf-custom-cursor-ring i {
display: block;
width: 100%;
height: 100%;
border: 1.5px solid var(--awf-color);
border-radius: 50%;
transition: transform 0.3s ease, opacity 0.3s ease;
}
.awf-custom-cursor-ring.awf-hover i { transform: scale(var(--awf-hover-scale)); opacity: 0.6; }
.awf-custom-cursor-dot.awf-show,
.awf-custom-cursor-ring.awf-show { opacity: 1; }
html.awf-custom-cursor-on,
html.awf-custom-cursor-on * { cursor: none !important; }
</style>
<script>
(function () {
var CLS = 'awf-custom-cursor';
// только для мыши: на телефонах и планшетах курсор не нужен
if (!window.matchMedia || !matchMedia('(hover: hover) and (pointer: fine)').matches) return;
var reduce = matchMedia('(prefers-reduced-motion: reduce)').matches;
// над этими элементами кольцо увеличивается; свой элемент — класс awf-custom-cursor-hover
var HOVER = 'a, button, input, select, textarea, label, [role="button"], .t-btn, .t-submit, .' + CLS + '-hover';
function init() {
var dot = document.createElement('div'), ring = document.createElement('div');
dot.className = CLS + '-dot';
ring.className = CLS + '-ring';
ring.appendChild(document.createElement('i'));
document.body.appendChild(dot);
document.body.appendChild(ring);
document.documentElement.classList.add(CLS + '-on');
var k = parseFloat(getComputedStyle(ring).getPropertyValue('--awf-smoothing')) || 0.16;
var x = -100, y = -100, rx = x, ry = y;
document.addEventListener('mousemove', function (e) {
x = e.clientX; y = e.clientY;
dot.style.transform = 'translate3d(' + x + 'px,' + y + 'px,0)';
dot.classList.add('awf-show');
ring.classList.add('awf-show');
var t = e.target && e.target.closest ? e.target.closest(HOVER) : null;
ring.classList.toggle('awf-hover', !!t);
});
document.documentElement.addEventListener('mouseleave', function () {
dot.classList.remove('awf-show');
ring.classList.remove('awf-show');
});
(function loop() {
rx += (x - rx) * (reduce ? 1 : k);
ry += (y - ry) * (reduce ? 1 : k);
ring.style.transform = 'translate3d(' + rx.toFixed(2) + 'px,' + ry.toFixed(2) + 'px,0)';
requestAnimationFrame(loop);
})();
}
if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init);
else init();
})();
</script>Вставляется один раз — в код всего сайта.
Как подключить в Tilda
Этот эффект действует на весь сайт, поэтому код вставляется не в блок, а в настройки сайта.
- Откройте вставку кода. «Настройки сайта» → «Вставка кода» → поле «HTML-код для вставки внутрь head».
- Вставьте код целиком и сохраните. Код добавляется один раз и работает на всех страницах сайта.
- Переопубликуйте все страницы. Без этого код не попадёт на уже опубликованные страницы.
- Нужно только на одной странице? Тогда вставьте код в «Настройки страницы» → «Дополнительно» → «HTML-код для вставки внутрь head» и опубликуйте эту страницу.
- Хотите поменять вид? Настройте эффект здесь заново и замените старый код новым — цвета, тексты и время уже вшиты в код.
- Свои элементы. На телефонах и планшетах курсор не включается. Чтобы кольцо увеличивалось над вашим элементом, добавьте ему класс
awf-custom-cursor-hover.
Ещё в разделе «Интерфейс»Весь каталог