Корректная работа библиотеки fullPage.js напрямую зависит от
особенностей устройства: размеров экрана, типа ввода (мышь, тач),
производительности и браузера. Поведение прокрутки, анимации и обработка
событий могут заметно отличаться, поэтому тестирование должно охватывать
максимально широкий спектр сценариев.
Типы устройств и ключевые
различия
Десктопные устройства
- Управление: колесо мыши, клавиатура
- Высокая производительность
- Большие экраны
- Точное позиционирование курсора
Мобильные устройства
- Управление: касания, свайпы
- Ограниченная производительность
- Различные плотности пикселей (DPR)
- Особенности мобильных браузеров (адресная строка, жесты
системы)
Планшеты
- Комбинированный ввод (тач + иногда клавиатура)
- Средний размер экрана
- Часто используются в альбомной ориентации
Проверка адаптивности
fullPage.js активно использует размеры viewport, поэтому необходимо
проверять:
Корректность секций
- Каждая секция должна занимать 100% высоты экрана
- Отсутствие лишнего скролла внутри секций (если это не
предусмотрено)
Адаптивные настройки
responsiveWidth
responsiveHeight
Пример:
new fullpage('#fullpage', {
responsiveWidth: 768,
responsiveHeight: 600
});
При достижении указанных значений fullPage.js отключает некоторые
функции (например, автоматическую прокрутку), переходя в «обычный»
режим.
Тестирование сенсорного
управления
На мобильных устройствах важно проверять:
Свайпы
- Плавность переходов между секциями
- Отсутствие ложных срабатываний
- Корректная обработка быстрых жестов
Прокрутка внутри элементов Если используются
вложенные скроллируемые блоки:
new fullpage('#fullpage', {
scrollOverflow: true
});
Проверяется:
- Возможность прокрутки внутри секции
- Отсутствие конфликтов между внутренним и внешним скроллом
Проверка производительности
Анимации fullPage.js могут нагружать слабые устройства.
Критические моменты:
- Большое количество секций
- Тяжёлые изображения и видео
- CSS-анимации внутри секций
Методы проверки:
- Тестирование на реальных устройствах
- Использование инструментов разработчика (Performance)
- Проверка FPS
Оптимизация:
- Ленивая загрузка (
lazyLoading)
- Минимизация DOM-элементов
- Использование
will-change в CSS
Работа с ориентацией экрана
На мобильных устройствах необходимо проверять:
Смена ориентации (portrait ↔︎ landscape):
- Пересчёт высоты секций
- Корректное позиционирование контента
- Отсутствие «скачков» интерфейса
fullPage.js автоматически реагирует на resize, но возможны баги при
сложной верстке.
Кроссбраузерное тестирование
Разные браузеры могут по-разному обрабатывать:
- CSS transform
- события scroll и touch
- viewport units (vh)
Обязательные браузеры для проверки:
- Chrome
- Safari (особенно на iOS)
- Firefox
- Edge
Особое внимание:
- Safari на iOS: динамическая адресная строка меняет высоту
viewport
- Chrome Android: особенности touch-событий
Проверка поведения при
масштабировании
Масштабирование (zoom) может нарушать логику fullPage.js:
- Секции могут выходить за пределы экрана
- Появляется горизонтальный скролл
- Смещаются якоря
Проверяется:
- zoom 80–150%
- системные настройки увеличения
Тестирование клавиатурной
навигации
На десктопе:
keyboardScrolling: true
Проверяется:
- переходы по стрелкам
- работа PageUp / PageDown
- отсутствие конфликтов с формами
Проверка якорей и навигации
Если используются якоря:
anchors: ['firstPage', 'secondPage']
Проверяется:
- корректная работа URL
- переходы по ссылкам
- восстановление состояния при перезагрузке
Тестирование вложенных
элементов
Особенно важно при использовании:
- модальных окон
- выпадающих списков
- iframe
Проблемы:
- блокировка скролла
- потеря фокуса
- конфликт событий
Проверка доступности
fullPage.js может усложнять доступность:
Проверяется:
- навигация с клавиатуры
- фокусировка элементов
- aria-атрибуты
Рекомендации:
- добавление tabindex
- корректная работа screen reader
- отключение сложных анимаций при необходимости
Использование
эмуляторов и реальных устройств
Эмуляторы (DevTools):
- Быстрый способ проверки адаптивности
- Эмуляция размеров экранов
- Ограниченная точность тач-событий
Реальные устройства:
- Точная проверка жестов
- Реальная производительность
- Поведение браузеров
Оптимально комбинировать оба подхода.
Автоматизация тестирования
Для крупных проектов используется автоматизация:
Инструменты:
- Selenium
- Playwright
- Cypress
Проверяемые сценарии:
- переходы между секциями
- работа якорей
- адаптивное поведение
Частые проблемы при
тестировании
1. «Залипание» скролла
- Причина: конфликт scrollOverflow и touch-событий
2. Некорректная высота секций
- Причина: динамический контент или vh
3. Рывки анимации
- Причина: слабое устройство или тяжёлый DOM
4. Проблемы на iOS
- viewport меняется при прокрутке
- баги Safari с fixed-элементами
Практические рекомендации
- Тестирование начинается с мобильных устройств (mobile-first)
- Проверка на минимум 3 реальных устройствах
- Использование throttling для имитации слабых устройств
- Изоляция проблемных секций
- Логирование событий прокрутки
Контроль чек-листа перед
релизом
- Все секции отображаются корректно
- Нет лишнего скролла
- Свайпы работают плавно
- Нет лагов на слабых устройствах
- Навигация работает во всех браузерах
- Корректная работа при смене ориентации
- Нет визуальных артефактов
Особенности
тестирования сложных проектов
При большом количестве интерактивных элементов:
- Проверяется синхронизация анимаций
- Контроль состояния при быстром скролле
- Проверка lazy loading
- Тестирование пользовательских обработчиков событий
(
onLeave, afterLoad)
Выявление узких мест
Основные точки деградации:
- сложные CSS-анимации
- видео-фоны
- большое количество DOM-узлов
- частые перерисовки
Используются:
- Chrome Performance
- Lighthouse
- профилирование памяти
Глубокое тестирование fullPage.js требует системного подхода:
сочетания ручной проверки, автоматизации и анализа производительности с
учётом особенностей каждого типа устройства и браузера.