Dom7 — это легковесная библиотека для работы с DOM, часто используемая в связке с фреймворком Framework7. Она обеспечивает удобные методы для манипуляции элементами страницы, включая программное управление прокруткой.
В Dom7 для прокрутки элементов используется метод
.scrollTop(), а также связанный с ним
метод .scrollLeft(). Эти методы позволяют
получать текущую позицию прокрутки элемента или задавать её
программно.
Чтобы узнать вертикальную позицию прокрутки элемента:
const scrollPosition = $$('.scrollable-element').scrollTop();
console.log(scrollPosition);
Для горизонтальной прокрутки используется аналогичный метод:
const scrollLeft = $$('.scrollable-element').scrollLeft();
console.log(scrollLeft);
Если метод вызывается без аргументов, он возвращает текущее значение прокрутки.
Методы .scrollTop(value) и
.scrollLeft(value) позволяют задавать новые координаты
прокрутки:
$$('.scrollable-element').scrollTop(200); // вертикальная прокрутка до 200px
$$('.scrollable-element').scrollLeft(150); // горизонтальная прокрутка до 150px
В качестве значения можно использовать число пикселей или переменные, вычисленные динамически.
Для создания анимации прокрутки используется объект параметров с
ключом scrollTo и дополнительным указанием
duration:
$$('.scrollable-element').scrollTop(500, 300); // прокрутка до 500px за 300 мс
Если требуется полностью контролировать анимацию, можно использовать следующий синтаксис:
$$('.scrollable-element').scrollTop({
scrollTop: 800,
duration: 500,
easing: 'easeInOutCubic'
});
Параметры:
scrollTop — вертикальная позиция прокрутки.scrollLeft — горизонтальная позиция.duration — время анимации в миллисекундах.easing — функция сглаживания движения, например
'linear', 'easeIn', 'easeOut',
'easeInOutCubic'.Dom7 позволяет прокрутить контейнер к конкретному дочернему элементу
с помощью метода .scrollIntoView():
$$('.scrollable-element .target-item').scrollIntoView({
duration: 400,
easing: 'easeInOutCubic',
offset: 10
});
Особенности параметров:
duration — время анимации.easing — функция сглаживания.offset — отступ сверху после прокрутки.Этот метод особенно полезен для реализации навигации по списку, табам или якорным ссылкам.
Для отслеживания прокрутки элементов Dom7 предоставляет метод
.on('scroll', callback):
$$('.scrollable-element').on('scroll', function (e) {
console.log('Текущая позиция прокрутки:', $$(this).scrollTop());
});
Удалить обработчик можно с помощью
.off():
$$('.scrollable-element').off('scroll');
Dom7 тесно интегрируется с компонентами Framework7, такими как
page-content или scrollable. Программная
прокрутка в этих элементах работает аналогично, но рекомендуется
использовать селекторы внутри конкретного компонента страницы:
const pageContent = $$('.page-content');
pageContent.scrollTop(0, 300); // прокрутка наверх текущей страницы
const scrollable = $$('.scrollable-element');
scrollable.scrollTop(scrollable[0].scrollHeight);
const current = $$('.scrollable-element').scrollTop();
$$('.scrollable-element').scrollTop(current + 100);
const itemIndex = 3;
const target = $$('.scrollable-element .item').eq(itemIndex);
target.scrollIntoView({duration: 400});
.scrollTop() и .scrollLeft()
вместо CSS-анимаций для больших списков.scroll,
особенно на мобильных устройствах.duration не менее
200 мс, чтобы избежать резких скачков.Dom7 предоставляет компактный и удобный интерфейс для программной прокрутки, позволяя не только управлять положением контента, но и создавать плавные анимации, отслеживать события и интегрироваться с компонентами сложных интерфейсов.