Как добавить динамический курсор с кружком и интерактивным текстом при наведении на элементы
В современном веб-дизайне важно не только создавать функциональные, но и визуально привлекательные интерфейсы.
Один из способов сделать сайт более интерактивным и запоминающимся — добавить кастомный курсор с анимацией.
В этой статье мы разберем, как создать динамический курсор с кружком, который следует за указателем мыши, и как добавить эффект наведения на элементы с текстом «Смотреть». Вы узнаете, как использовать HTML, CSS и JavaScript для реализации этой идеи, а также как настроить анимацию и скрытие стандартного курсора.
Этот прием отлично подойдет для портфолио, лендингов и других проектов, где важно удивить пользователя и добавить уникальности интерфейсу.
Для создания эффекта курсора мыши со шлейфом цветных шариков на сайте можно использовать HTML, CSS и JavaScript.
Вот пример кода:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Курсор с кружком</title>
<style>
body {
margin: 0;
height: 100vh;
overflow: hidden;
background-color: #ffffff; /* Белый фон */
}
/* Кружок под курсором */
.cursor-circle {
position: absolute;
width: 20px;
height: 20px;
border-radius: 50%;
background-color: rgba(255, 111, 97, 0.7); /* Полупрозрачный цвет, как у кружка "Смотреть" */
pointer-events: none;
transform: translate(-50%, -50%);
z-index: 1000;
}
/* Кастомный курсор */
.custom-cursor {
position: absolute;
width: 60px;
height: 60px;
border-radius: 50%;
background-color: rgba(255, 111, 97, 0.7); /* Полупрозрачный цвет */
color: white;
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
font-family: Arial, sans-serif;
text-align: center;
pointer-events: none;
transform: translate(-50%, -50%);
z-index: 1000;
opacity: 0; /* Начальная прозрачность */
transition: opacity 0.3s ease; /* Плавное появление */
}
/* Картинка для примера */
.shleiyf {
width: 200px;
height: 200px;
margin: 50px;
border: 2px solid #ccc;
object-fit: cover;
}
</style>
</head>
<body>
<!-- Пример картинки с классом shleiyf -->
<img src="https://via.placeholder.com/200" alt="Пример картинки" class="shleiyf">
<script>
let mouseX = 0, mouseY = 0;
// Создаем кружок под курсором
const cursorCircle = document.createElement('div');
cursorCircle.className = 'cursor-circle';
document.body.appendChild(cursorCircle);
// Создаем кастомный курсор
const customCursor = document.createElement('div');
customCursor.className = 'custom-cursor';
customCursor.textContent = 'Смотреть';
document.body.appendChild(customCursor);
// Обновляем позицию курсора
document.addEventListener('mousemove', (e) => {
mouseX = e.pageX;
mouseY = e.pageY;
cursorCircle.style.left = `${mouseX}px`;
cursorCircle.style.top = `${mouseY}px`;
customCursor.style.left = `${mouseX}px`;
customCursor.style.top = `${mouseY}px`;
});
// Показываем кастомный курсор при наведении на картинку с классом shleiyf
const shleiyfImage = document.querySelector('.shleiyf');
shleiyfImage.addEventListener('mouseenter', () => {
customCursor.style.opacity = '1'; /* Кружок "Смотреть" полностью видим */
cursorCircle.style.opacity = '0'; /* Скрываем кружок под курсором */
document.body.style.cursor = 'none'; /* Скрываем стандартный курсор */
});
shleiyfImage.addEventListener('mouseleave', () => {
customCursor.style.opacity = '0'; /* Плавное исчезновение кружка "Смотреть" */
cursorCircle.style.opacity = '1'; /* Показываем кружок под курсором */
document.body.style.cursor = 'default'; /* Возвращаем стандартный курсор */
});
</script>
</body>
</html>
Давайте рассмотрим некоторые детали кода
Полупрозрачный кружок «Смотреть»:
Добавлен полупрозрачный цвет для кружка с помощью
rgba(255, 111, 97, 0.7).
Плавное появление кружка:
Добавлено свойство
transition: opacity 0.3s ease;для плавного появления и исчезновения кружка.При наведении на картинку кружок плавно появляется (
opacity: 1), а при уходе курсора — плавно исчезает (opacity: 0).
Возврат стандартного курсора:
Убрано
cursor: none;изbody, чтобы стандартный курсор (стрелочка) отображался вместе с кастомным курсором.
Пример картинки:
Добавлена картинка с классом
shleiyf(используется placeholder-изображение).
Как это работает:
Кружок под курсором всегда следует за курсором.
При наведении на картинку:
Кружок «Смотреть» появляется, а кружок под курсором и стандартный курсор скрываются.
При уходе курсора с картинки:
Кружок «Смотреть» исчезает, а кружок под курсором и стандартный курсор возвращаются.
Как использовать:
Скопируйте код в файл с расширением
.html.Откройте файл в браузере.
Двигайте курсором, и вы увидите кружок под курсором.
Наведите курсор на картинку, и вы увидите, как кружок «Смотреть» появляется, а кружок под курсором и стандартный курсор пропадают.
Дополнительные настройки:
Чтобы изменить размер кружка под курсором, измените значения
widthиheightв CSS для.cursor-circle.Чтобы изменить цвет кружка, отредактируйте
background-colorв CSS для.cursor-circleи.custom-cursor.
Теперь у вас есть кружок под курсором, который скрывается при наведении на картинку, а вместо него появляется кружок «Смотреть»! 🎉