Waypoints.viewportWidth — это статическое свойство
библиотеки Waypoints, используемое для определения текущей ширины окна
браузера (viewport) и адаптации работы точек останова (waypoints) в
зависимости от размера экрана. Оно особенно полезно при реализации
адаптивного поведения скролл-событий и динамической загрузки элементов
на странице.
var width = Waypoint.viewportWidth();
Number.Метод является статическим, поэтому не требует создания экземпляра
Waypoint. Он напрямую обращается к внутренним механизмам
Waypoints для вычисления ширины viewport с учётом возможных особенностей
различных браузеров.
Кроссбраузерность
Waypoints.viewportWidth() корректно работает в большинстве
современных браузеров, автоматически учитывая различия в способе
измерения ширины окна между window.innerWidth и
document.documentElement.clientWidth.
Динамическое обновление Значение, возвращаемое
методом, всегда актуально на момент вызова. Если окно браузера изменяет
размер, следующая проверка через Waypoint.viewportWidth()
отразит новые размеры.
Применение в адаптивных сценариях Часто используется вместе с условной логикой для создания различных точек останова на мобильных, планшетных и десктопных версиях страницы:
if (Waypoint.viewportWidth() < 768) {
// поведение для мобильных устройств
} else {
// поведение для планшетов и десктопов
}
viewportWidth
является ключевым для вычисления условий включения определённых точек
останова в коде:var waypoint = new Waypoint({
element: document.getElementById('section'),
handler: function(direction) {
console.log('Прокрутка достигла элемента');
},
offset: function() {
if (Waypoint.viewportWidth() < 1024) {
return '50%';
} else {
return '25%';
}
}
});
В этом примере смещение (offset) точки останова изменяется в зависимости от текущей ширины окна браузера.
var waypoint = new Waypoint({
element: document.getElementById('animateBlock'),
handler: function(direction) {
if (Waypoint.viewportWidth() < 768) {
this.element.classList.add('fade-in-mobile');
} else {
this.element.classList.add('fade-in-desktop');
}
}
});
if (Waypoint.viewportWidth() >= 1200) {
new Waypoint({
element: document.getElementById('sidebar'),
handler: function() {
this.element.classList.add('fixed');
},
offset: '0%'
});
}
resize для
пересоздания или обновления точек останова:window.addEventListener('resize', function() {
console.log('Текущая ширина viewport:', Waypoint.viewportWidth());
});
window.innerWidth и
document.documentElement.clientWidthWaypoint.viewportWidth() учитывает особенности
реализации Waypoints и корректно возвращает ширину viewport, независимо
от наличия полос прокрутки и различий между браузерами.Waypoint и StickyElement.Waypoints.viewportWidth() возвращает актуальную ширину
окна просмотра в пикселях.offset для responsive-логики.Использование Waypoints.viewportWidth обеспечивает
точное управление поведением скролл-событий и элементов страницы, делая
интерфейс динамичным и адаптивным на всех типах устройств.