Событие afterResize является одним из ключевых
событий жизненного цикла fullPage.js, которое срабатывает
после изменения размера окна браузера. Это событие
особенно важно для адаптивного дизайна, когда необходимо корректно
перерасставить элементы и пересчитать высоты секций после ресайза.
new fullpage('#fullpage', {
afterResize: function(width, height){
console.log(`Новое окно: ширина ${width}, высота ${height}`);
}
});
Событие afterResize принимает два параметра:
Эти параметры позволяют динамически подстраивать контент и изменять стили элементов в зависимости от нового размера окна.
При изменении окна некоторые элементы могут выходить за границы
секции. afterResize позволяет обновлять их размеры:
afterResize: function(width, height){
const slides = document.querySelectorAll('.slide');
slides.forEach(slide => {
slide.style.height = `${height}px`;
});
}
Можно менять размер шрифта или масштабировать контент в зависимости от ширины окна:
afterResize: function(width, height){
const headings = document.querySelectorAll('.section h1');
headings.forEach(h => {
h.style.fontSize = width > 1200 ? '3rem' : '2rem';
});
}
Например, скрывать стрелки навигации на маленьких экранах:
afterResize: function(width){
const arrows = document.querySelectorAll('.fp-controlArrow');
arrows.forEach(arrow => {
arrow.style.display = width < 768 ? 'none' : 'block';
});
}
afterResize срабатывает после
onLeave и afterLoad, но только при
изменении размеров окна.responsiveWidth или
responsiveHeight, afterResize можно применять
для дополнительной настройки адаптивного поведения,
например:new fullpage('#fullpage', {
responsiveWidth: 900,
afterResize: function(width){
if(width < 900){
fullpage_api.setAutoScrolling(false);
} else {
fullpage_api.setAutoScrolling(true);
}
}
});
afterResize не срабатывает при изменении размеров
секций через CSS без изменения окна браузера.let resizeTimeout;
afterResize: function(width, height){
clearTimeout(resizeTimeout);
resizeTimeout = setTimeout(() => {
console.log('Обновление контента после ресайза');
}, 200);
}
Событие может быть использовано совместно с методами fullPage.js, такими как:
reBuild() — пересчет размеров всех секций после
значительных изменений DOM.setAutoScrolling() — включение/отключение вертикальной
прокрутки в зависимости от ширины окна.silentMoveTo() — перемещение на нужную секцию после
изменения размера.При реализации адаптивных проектов важно учитывать, что
каждое изменение размера окна может вызвать перестройку
секций, что влияет на производительность. Поэтому обработчик
afterResize следует использовать только для
критически необходимых операций, избегая тяжелых вычислений
напрямую внутри функции.
Если нужно, могу подготовить подробный пример полной страницы с использованием afterResize, где каждая секция динамически адаптируется под размеры экрана и контент перестраивается плавно. Это будет готовый учебный кейс для fullPage.js.
Хотите, чтобы я сделал такой пример?