Метод reposition

Метод reposition библиотеки Tooltipster предназначен для динамического перерасчёта и обновления позиции тултипа относительно целевого элемента. Этот метод особенно полезен в ситуациях, когда положение элемента на странице изменяется после инициализации тултипа, например, при изменении размеров окна браузера, прокрутке страницы или динамическом изменении контента.


Синтаксис метода

$(element).tooltipster('reposition');
  • element – DOM-элемент или jQuery-объект, к которому был привязан тултип.
  • Метод не принимает аргументов и возвращает текущий jQuery-объект для возможности цепочки вызовов.

Основные особенности

  1. Перерасчёт позиции Метод инициирует перерасчёт всех координат тултипа и проверяет, не выходит ли тултип за пределы видимой области. Если позиция была изменена динамически (например, через CSS top/left целевого элемента), тултип будет корректно отображён в новом месте.

  2. Адаптация к изменению размеров окна При изменении ширины или высоты окна браузера тултип может перекрываться другими элементами или выходить за видимую область. Вызов reposition позволяет мгновенно адаптировать положение тултипа без необходимости его скрытия и повторного отображения.

  3. Обновление при динамическом контенте Если содержимое тултипа изменилось и его размеры увеличились или уменьшились, reposition обеспечит правильное выравнивание тултипа относительно целевого элемента, учитывая новые размеры.


Примеры использования

Перерасчёт позиции после прокрутки

$(window).on('scroll', function() {
    $('.tooltip-element').tooltipster('reposition');
});

В этом примере при любой прокрутке страницы тултип автоматически смещается так, чтобы оставаться привязанным к целевому элементу.

Адаптация при изменении размера окна

$(window).on('resize', function() {
    $('.tooltip-element').tooltipster('reposition');
});

Метод гарантирует, что тултип не выйдет за границы окна и будет корректно позиционирован после изменения размеров окна браузера.

Обновление после изменения контента тултипа

$('.tooltip-element').tooltipster('content', 'Новый текст тултипа');
$('.tooltip-element').tooltipster('reposition');

Даже если содержимое тултипа стало больше, метод reposition обновит его положение, чтобы тултип оставался видимым и правильно выровненным.


Взаимодействие с другими методами

Метод reposition часто используется совместно с методами:

  • open – для открытия тултипа и последующего корректного позиционирования.
  • close – после закрытия тултипа для подготовки к следующему отображению.
  • content – после изменения содержимого тултипа для корректного отображения.

Пример:

$('.tooltip-element').tooltipster('content', 'Обновлённый текст')
                     .tooltipster('reposition')
                     .tooltipster('open');

Особенности реализации

  • Метод не создаёт новый тултип, а лишь перерассчитывает позицию существующего.

  • Внутренние вычисления учитывают:

    • Размеры целевого элемента
    • Размеры тултипа
    • Позицию в видимой области
    • Параметр side (top, bottom, left, right) и настройки offset.
  • Если тултип закреплён с анимацией (animation), метод плавно смещает тултип без резких скачков.


Практические рекомендации

  • Использовать reposition при динамическом изменении интерфейса, особенно в SPA-приложениях.
  • Вызывать после изменения размеров целевого элемента или контента тултипа.
  • Не рекомендуется вызывать метод в бесконечном цикле, лучше привязывать к событиям scroll, resize или DOM mutation.

Метод reposition обеспечивает стабильное и корректное отображение тултипов в любых условиях, делая интерфейс динамичным и адаптивным. Он является ключевым инструментом при работе с динамическими страницами и интерактивными элементами.