Создание интерактивного информационного окна на веб-странице с помощью JavaScript

Создание интерактивного информационного окна на веб-странице с помощью JavaScript

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

Описание кода:


function showTagOnHover(event) {
  const hoveredElement = event.target;
  const tagName = hoveredElement.tagName.toLowerCase();

  // Создание информационного окна
  const infoBox = document.createElement('div');
  infoBox.textContent = `Наведен элемент с тегом: ${tagName}`;
  infoBox.style.position = 'fixed';
  infoBox.style.padding = '10px';
  infoBox.style.backgroundColor = 'white';
  infoBox.style.border = '1px solid black';
  infoBox.style.zIndex = '9999'; // Помещаем окно поверх остальных элементов

  // Добавление окна на страницу
  document.body.appendChild(infoBox);

  // Функция для перемещения окна
  function moveInfoBox(x, y) {
    infoBox.style.top = `${y + 10}px`;
    infoBox.style.left = `${x + 10}px`;
  }

  // Функция для проверки наложения элементов
  function checkOverlap(x, y) {
    const elementBelowCursor = document.elementFromPoint(x, y);
    if (elementBelowCursor && elementBelowCursor !== infoBox) {
      return true; // Есть наложение
    }
    return false; // Нет наложения
  }

  // Перемещение окна при движении курсора
  function onMouseMove(event) {
    const x = event.clientX;
    const y = event.clientY;

    if (checkOverlap(x, y)) {
      const newTop = y - infoBox.clientHeight - 20;
      const newLeft = x - infoBox.clientWidth - 20;
      moveInfoBox(newLeft < 0 ? 10 : newLeft, newTop < 0 ? 10 : newTop);
    } else {
      moveInfoBox(x, y);
    }
  }

  document.addEventListener('mousemove', onMouseMove);

  // Удаление окна при уходе курсора
  hoveredElement.addEventListener('mouseout', () => {
    infoBox.remove();
    document.removeEventListener('mousemove', onMouseMove);
  });
}

// Добавление обработчика события для отслеживания наведения курсора
document.addEventListener('mouseover', showTagOnHover);

Запуск в консоли браузера:

  1. Откройте консоль браузера: Нажмите F12 или щелкните правой кнопкой мыши на странице и выберите «Инспектировать» (Inspect), затем перейдите на вкладку «Console» (Консоль).

  2. Вставьте код: Вставьте код JavaScript в консоль и нажмите Enter.

  3. Наведите на элементы: Теперь при наведении курсора на элементы страницы появится информационное окно с тегом элемента.

Обратите внимание, что этот код реагирует на событие mouseover, поэтому для его тестирования необходимо наводить курсор мыши на элементы страницы.

Заключение:

Этот простой код на JavaScript демонстрирует создание интерактивного информационного окна, которое появляется при наведении курсора на элемент веб-страницы. Используйте его в своих проектах для улучшения пользовательского опыта и предоставления дополнительной информации о содержимом страницы.

Источник

Shopping Cart