Maison  >  Article  >  interface Web  >  Comment pouvons-nous éliminer les effets de survol persistant sur les boutons dans les environnements tactiles ?

Comment pouvons-nous éliminer les effets de survol persistant sur les boutons dans les environnements tactiles ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-24 20:11:44632parcourir

How Can We Eliminate Sticky Hover Effects on Buttons in Touch-Enabled Environments?

Élimination des effets de survol persistants sur les boutons dans les environnements tactiles

La prévalence des effets de survol sur les boutons crée un problème en matière de toucher appareils. L'état de survol, souvent indiqué par un changement de couleur, a tendance à persister même après avoir appuyé sur le bouton, ce qui entraîne un effet « collant ». Ce comportement peut être indésirable et interférer avec l'expérience utilisateur.

Pour résoudre ce problème, de nombreuses approches ont été proposées avec plus ou moins de succès :

  • Ajout d'un "non- hover" classe sur touchend : Bien que cette méthode empêche efficacement l'effet de survol après avoir appuyé sur, elle peut avoir un impact négatif sur les performances et ne parvient pas à gérer les appareils dotés à la fois d'un écran tactile et d'une souris. input.
  • Ajout d'une classe « tactile » au documentElement : Cette approche présente également des défis dans les appareils prenant en charge à la fois la saisie tactile et la saisie de la souris, car elle ne peut pas faire la distinction entre les deux entrées.

La solution idéale à ce problème serait de supprimer l'état de survol immédiatement après avoir appuyé sur le bouton. Malheureusement, cette fonctionnalité n’est pas supportée nativement par les navigateurs. Tenter de focaliser un autre élément ou d'appuyer manuellement sur un autre élément ne produit pas le résultat souhaité.

Une solution parfaite :

La mise en œuvre de CSS Media Queries niveau 4 fournit une solution définitive solution à ce problème. En utilisant le code suivant :

@media (hover: hover) {
    button:hover {
        background-color: blue;
    }
}

les navigateurs qui prennent en charge le véritable survol (par exemple, avec la saisie de la souris) appliqueront le style de survol uniquement lorsque l'événement de survol est authentique.

Pour les navigateurs qui ne le font pas prennent en charge cette fonctionnalité, un polyfill est disponible qui vous permet d'émuler le comportement. Ce polyfill vous permet d'utiliser le CSS suivant :

html.my-true-hover button:hover {
    background-color: blue;
}

Enfin, en utilisant le JavaScript du polyfill, vous pouvez basculer dynamiquement la présence de la classe "my-true-hover" en fonction de la prise en charge du survol de l'appareil. Cette approche reproduit efficacement le comportement de la véritable détection de survol, offrant une solution parfaite au problème de l'effet de survol persistant sur les appareils tactiles.

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