@Fierfoxik

Как сделать смену позиции абсолютному элементу если он не влезает в контейнер?

Пытаюсь сделать адаптивное tooltip окно.

Но возник вопрос, если tooltip показывается справа от элемента, как рассчитать тот момент когда он не будет влезать с правой стороны от элемента в контейнере?

И как позиционировать tooltip по вертикали что бы он оказался по середине элемента?

codepen

var showingTooltip;

    document.onmouseover = function(e) {
      var target = e.target;

      var tooltip = target.getAttribute('data-tooltip');
      if (!tooltip) return;

      var tooltipElem = document.createElement('div');
      tooltipElem.className = 'tooltip';
      tooltipElem.innerHTML = tooltip;
      document.body.appendChild(tooltipElem);

      var coords = target.getBoundingClientRect();

      var left = coords.left + target.offsetWidth;
      if (left < 0) left = 0;

      var top = coords.top - tooltipElem.offsetHeight - 5;
      if (top < 0) { 
        top = coords.top + target.offsetHeight + 5;
      }

      tooltipElem.style.left = left + 'px';
      tooltipElem.style.top = top + 'px';

      showingTooltip = tooltipElem;
    };

    document.onmouseout = function(e) {

      if (showingTooltip) {
        document.body.removeChild(showingTooltip);
        showingTooltip = null;
      }

    };
  • Вопрос задан
  • 222 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы