Решение на JavaScript, которое добавляет классы на <body> при основных событиях: DOM построен, страница загружена, скролл, клик, движение мыши, касание и бездействие. Дальше через CSS можно управлять любыми элементами сайта.

События, классы и их продолжительность:

Событие Класс на <body> Тип Продолжительность
DOMContentLoaded DOM построен is-dom-ready постоянный до конца сессии
load страница загружена is-loaded постоянный до конца сессии
scroll прокрутка страницы is-scrolling pulse 0.5 с после остановки
click клик в любом месте is-clicking pulse 0.5 с
mousemove движение мыши is-mousemoving pulse 0.5 с после остановки
touchstart касание экрана is-touching pulse 0.5 с
- бездействие 30 с is-idle постоянный до любого действия

JS:

Скрипт подключается один раз на весь сайт. Он не трогает элементы напрямую — только переключает классы на <body>. Всё остальное делается на CSS.

Примеры использования:

is-loaded — страница загружена

Класс появляется один раз после полной загрузки страницы. Удобно для скрытия прелоадера и плавного появления контента.

is-scrolling — прокрутка страницы

Класс висит, пока страница скроллится, и снимается через 0.5 с после остановки. Классический сценарий — «сжатие» шапки при скролле.

is-clicking — клик в любом месте

Класс появляется на 0.5 с при любом клике. Можно сделать «отзывчивость» интерфейса: элемент мягко реагирует на действие пользователя.

is-mousemoving — движение мыши

Класс висит, пока курсор движется. Можно подсветить элементы или показать кастомный курсор.

is-touching — касание экрана

Аналог клика, но для мобильных. Появляется на 0.5 с после касания.

is-idle — бездействие

Класс появляется через 30 секунд бездействия и снимается при любом действии. Можно приглушить интерфейс или показать подсказку «Вы здесь?».

Комбинирование

Классы можно комбинировать. Например, показать что-то только когда страница загружена и пользователь скроллит:

Наглядный пример:

Данный код в момент скролла cделает картинку ниже черно-белой, при клике/таче в любом месте страницы она будет подпрыгивать, при движении мышки становится прозрачной, а при бездействии 30 секунд пропадет вовсе.

demo

Смотрите также:

Установка на сайт кнопки, возвращающей на верх страницы, и варианты ее оформления

Интересный звуковой эффект при прокрутке страницы

2 варианта зафиксировать блок при прокрутке страницы (на jQuery и на чистом CSS)

Добавить комментарий:

Ваш комментарий отправлен!