Skip to content

InView ​

0.3.0 ​

2026-09-26

  • Задержка стаггера у createRevealController теперь полностью пропускается при prefers-reduced-motion: reduce — переключение класса/атрибута по-прежнему происходит как обычно, пропускается только сама задержка по времени.
  • createElementTracker (а вместе с ним и composables/хуки useElementViewport/useParallaxLayer, построенные на нём, для Vue и React) принимает элемент root, чтобы считать viewportProgress/ distanceFromCenter относительно прокручиваемого контейнера вместо окна — для параллакс-слоя или трекера позиции внутри overflow: auto (панель дашборда, модалка). Сам rect в любом случае остаётся привязанным к окну.
  • Опции useElementVisibility теперь реактивны в обоих адаптерах. Vue: threshold/rootMargin/root/once принимают ref/геттер — изменение threshold/rootMargin/root вызывает настоящую переподписку, once обновляется вживую без пересоздания подписки. React: once/onEnter/onLeave теперь обновляются вживую при каждом ре-рендере (раньше замораживались на том рендере, где подписка впервые создавалась), а свежий инлайн-массив threshold на каждом рендере больше не вызывает лишнюю переподписку.
  • Новые Vue composables: useRevealController (создаёт createRevealController при монтировании, уничтожает при размонтировании), usePrefersReducedMotion (реактивный Ref<boolean>, в отличие от статической prefersReducedMotion()), useStagger, useScrollTo, useScrollSpy.
  • Новые React-хуки: useReveal (эквивалент Vue-директивы v-reveal — автоматически переключает класс/атрибут), useRevealController, usePrefersReducedMotion, useStagger, useScrollTo, useScrollSpy — той же формы, что и Vue composables выше.
  • Новое в @macrulez/inview-core: createScrollSpy (отслеживает, какой из списка целевых элементов сейчас находится в «активной» полосе около вертикального центра viewport — для подсветки активного пункта навигации) и scrollToElement (плавно прокручивает контейнер, чтобы элемент оказался у его края, с отступом в px).
  • Контроллер, который возвращает createRevealController, получил observe(el)/unobserve(el) (для элементов вне скана по selector) и refresh(selector?) (разовый скан с другим селектором, в дополнение к уже существующему refresh() без аргументов). Атрибут data-reveal-attribute на конкретном элементе теперь переопределяет activeAttribute так же, как data-reveal-class уже переопределял activeClass.
  • Список автоимпортов Nuxt теперь включает useRevealController, usePrefersReducedMotion, useStagger, useScrollTo, useScrollSpy, createScrollSpy и scrollToElement.