Maison >interface Web >tutoriel CSS >Comment créer une info-bulle dynamique avec des effets de fondu entrant/sortant pour un élément Div ?

Comment créer une info-bulle dynamique avec des effets de fondu entrant/sortant pour un élément Div ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-18 18:30:17663parcourir

How to Create a Dynamic Tooltip with Fade-in/Fade-out Effects for a Div Element?

Ajouter une info-bulle dynamique à un élément div

Question :

Considérez un élément div avec une étiquette et un champ de saisie :

<div>
  <label>Name</label>
  <input type="text"/>
</div>

Comment créer une info-bulle qui apparaît lorsque les utilisateurs survolent l'élément div, avec un subtil effet de fondu entrant/fondu sortant ?

Réponse :

Pour les info-bulles de base qui affichent un message statique, vous pouvez utiliser l'attribut title :

<div title="This is my tooltip">

Cependant, pour les info-bulles avec du texte dynamique et des effets de fondu animés, une approche plus avancée est requise :

  1. Créer une animation CSS pour le tooltip.
  2. Ajoutez un écouteur d'événement JS pour gérer les événements de survol.
  3. Créez un élément DOM d'info-bulle et positionnez-le par rapport au div.
  4. Ajoutez/supprimez l'info-bulle en appliquer l'animation CSS lors du survol/suppression du survol.

Voici un exemple utilisant JavaScript et CSS :

.tooltip {
  display: none;
  position: absolute;
  padding: 10px;
  color: white;
  border: 1px solid black;
  opacity: 0;
  transition: all 0.2s;
}

.tooltip.show {
  display: block;
  opacity: 1;
}
// Create a tooltip element
const tooltip = document.createElement('span');
tooltip.classList.add('tooltip');

// Add the event listener to the div
const div = document.querySelector('div');
div.addEventListener('mouseover', (e) => {
  // Set the tooltip text
  tooltip.textContent = 'This is my tooltip';

  // Position the tooltip
  tooltip.style.left = e.x + 'px';
  tooltip.style.top = e.y + 'px';

  // Add the tooltip to the body
  document.body.appendChild(tooltip);

  // Add the show class to the tooltip
  tooltip.classList.add('show');
});

div.addEventListener('mouseout', () => {
  // Remove the tooltip from the body
  document.body.removeChild(tooltip);
});

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn