Описание работы скрипта для плавающих значков и экрана фильтров
Раздел: JavaScript
Темы: Описание работы скрипта для плавающих значков и экрана фильтров
Дата создания: 2024-09-19 14:16:40
Описание работы скрипта для плавающих значков и экрана фильтров:
HTML-структура для плавающих значков:
Контейнер для значков: Внутри контейнера #floating-icons размещены три основных элемента:
Значок фильтра: Представлен элементом #filter-icon-wrapper с иконкой фильтра (например, изображения "фильтр").
Значок корзины: Кнопка для перехода на страницу корзины с числом товаров, которое динамически обновляется (с помощью класса .cart-count).
Плавающая кнопка WhatsApp: Ссылка на чат в WhatsApp с автоматически генерируемым сообщением и соответствующей иконкой.
Под иконкой WhatsApp также имеется подпись, которая кликабельна и ведет на тот же URL.
Затемненный фон и выезжающий экран фильтров:
Затемненный фон (#filter-overlay) используется для визуального эффекта затемнения страницы при отображении экрана фильтров. Клик по этому элементу также закрывает экран фильтров.
Экран фильтров (#filter-screen): Выезжает с правой стороны экрана и отображает список доступных фильтров. В данном примере в зависимости от значения переменной $thisPage вызывается блок с фильтрами из другого PHP-файла.
Генерация ссылки для WhatsApp:
При загрузке страницы в скрипте задается переменная message, содержащая текст сообщения. Это сообщение кодируется с помощью функции encodeURIComponent(), чтобы оно было корректно передано в URL для отправки в WhatsApp.
Затем сформированный URL устанавливается как href для кнопки WhatsApp (#whatsapp-float-button) и подписи под ней (#whatsapp-caption-link).
Функция toggleFilterScreen() для открытия и закрытия экрана фильтров:
При клике на значок фильтрации или затемненный фон экран фильтров может либо выезжать, либо скрываться:
Если ширина фильтров равна 0, экран выезжает, изменяя ширину на 50% экрана, а затемненный фон становится видимым.
Если фильтр уже открыт, его ширина устанавливается в 0, затемненный фон скрывается.
Значок фильтра двигается влево на 50% экрана при открытии фильтра и возвращается обратно при закрытии.
Анимация значка фильтра:
Скрипт сначала скрывает значок фильтра, используя функцию hideFilterIcon(). При этом добавляется плавная анимация уменьшения масштаба (scale(0.5)) и изменения прозрачности (opacity: 0).
Для отображения значка используется функция showFilterIcon(), которая добавляет плавное увеличение и увеличение прозрачности с небольшой задержкой, создавая эффект появления.
Эти функции позволяют значку плавно скрываться и отображаться в зависимости от состояния экрана.
Использование IntersectionObserver для отслеживания видимости фильтра:
IntersectionObserver отслеживает видимость контейнера с фильтром на странице. Когда контейнер фильтра становится видимым, значок фильтра скрывается, а когда фильтр исчезает из зоны видимости, значок вновь отображается.
Таким образом, значок фильтра появляется только тогда, когда сам фильтр не виден на экране.
Обработчики событий:
При загрузке страницы (DOMContentLoaded) начинается наблюдение за контейнером фильтра с помощью IntersectionObserver.
Когда пользователь кликает на значок фильтра, срабатывает функция toggleFilterScreen(), открывая или закрывая фильтры и управляя отображением значка.
Как это работает:
Пользователь видит значок фильтра, который плавает в правом углу экрана. Когда пользователь прокручивает страницу и блок с фильтром становится видимым, значок исчезает.
При клике на значок фильтра, с правой стороны экрана появляется экран с доступными фильтрами (например, выбор диаметра шин, марки и т.д.), при этом страница затемняется. Экран можно закрыть, нажав на значок фильтра снова или на затемненный фон.
WhatsApp кнопка позволяет пользователю отправить предустановленное сообщение в магазин через чат, кликнув на значок или на подпись под ним.
Таким образом, этот скрипт обеспечивает динамическое взаимодействие с пользователем, улучшая удобство работы с фильтрами и добавляя удобную связь через WhatsApp.
Вернуться на главную