Maison > interface Web > tutoriel CSS > le corps du texte

Comment puis-je afficher une info-bulle uniquement lorsque les points de suspension sont actifs en HTML ?

Mary-Kate Olsen
Libérer: 2024-11-06 08:27:02
original
341 Les gens l'ont consulté

How Can I Display A Tooltip Only When Ellipsis Is Active in HTML?

Détermination de l'activation des points de suspension pour l'affichage des info-bulles

En HTML, si le contenu dépasse la largeur spécifiée d'un élément, les points de suspension (...) peuvent automatiquement appliqué, désigné par un texte de débordement tronqué et remplacé par trois points. Cet article explique comment afficher une info-bulle uniquement lorsque les points de suspension sont actifs.

Arrière-plan

Considérez l'extrait HTML suivant :

<code class="html"><p>I have got a span with dynamic data in my page, with ellipsis style.</p>

<pre class="brush:php;toolbar:false">.my-class
{
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;  
  width: 71px;
}
<span id="myId" class="my-class"></span>
document.getElementById('myId').innerText = "...";
Copier après la connexion

Dans cet exemple, le contenu dans la plage "myId" sera mis à jour dynamiquement et le style points de suspension s'active lorsque le contenu dépasse la largeur spécifiée.

Ajout d'une info-bulle

Pour ajouter une info-bulle à cet élément, nous pouvons utiliser l'attribut "title":

<code class="html"><span id="myId" class="my-class" title="Full Content"></span></code>
Copier après la connexion

Faire apparaître l'info-bulle uniquement avec des points de suspension

Cependant, nous souhaitons que l'info-bulle apparaisse uniquement lorsque le contenu est suffisamment long pour activer les points de suspension. Pour y parvenir, nous pouvons lier un écouteur d'événement mouseenter à l'élément et ajouter dynamiquement l'attribut "title" :

<code class="javascript">$('.mightOverflow').bind('mouseenter', function(){
    var $this = $(this);

    if(this.offsetWidth < this.scrollWidth && !$this.attr('title')){
        $this.attr('title', $this.text());
    }
});</code>
Copier après la connexion

Dans ce code JavaScript, nous vérifions si la largeur de décalage de l'élément est inférieure à sa largeur de défilement. , indiquant que le contenu déborde. Si l'attribut "title" n'est pas encore défini, nous ajoutons alors le texte intégral de l'élément comme info-bulle. Cela garantit que l'info-bulle ne s'affiche que lorsque les points de suspension sont activés.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!