Maison > interface Web > tutoriel CSS > Comment pouvez-vous éviter les effets indésirables du survol sur les appareils à écran tactile ?

Comment pouvez-vous éviter les effets indésirables du survol sur les appareils à écran tactile ?

Linda Hamilton
Libérer: 2024-10-27 16:19:02
original
898 Les gens l'ont consulté

How Can You Prevent Unwanted :hover Effects on Touchscreen Devices?

Surmonter les bizarreries du survol sur les appareils à écran tactile

Problème : :les styles CSS du survol sont déclenchés involontairement sur les appareils tactiles, provoquant des effets indésirables.

Solution : Mettre en œuvre une stratégie globale pour désactiver ou ignorer les déclarations :hover sur les plateformes à écran tactile.

Rapide et sale : suppression de JavaScript

Pour une approche pragmatique, JavaScript peut être utilisé pour supprimer tous les styles :hover. Notez que les feuilles de style doivent être hébergées sur le même domaine et cela peut gêner l'UX sur les appareils mixtes tactiles/souris.

<code class="js">function hasTouch() {
  // Check for touch capabilities
}

if (hasTouch()) {
  // Remove :hover stylesheets
}</code>
Copier après la connexion

Solutions basées sur CSS

Requêtes multimédias :

<code class="css">@media (hover: none) {
  a:hover {
    color: inherit;
  }
}</code>
Copier après la connexion

Cependant, cette solution ne fonctionne que sur les appareils iOS 9.0 ou Android 5.0.

Règles conditionnelles :

<code class="css">body.hasHover a:hover {
  color: blue;
}</code>
Copier après la connexion
Copier après la connexion

Cela nécessite d'ajouter un préfixe all :hover règles avec une classe (par exemple, hasHover) qui est ajoutée ou supprimée en fonction de la détection de l'écran tactile.

Détection optimale : JavaScript et CSS

La solution la plus robuste combine la détection tactile JavaScript avec CSS règles conditionnelles.

<code class="js">function watchForHover() {
  // Detect touch and toggle hasHover class
}</code>
Copier après la connexion
<code class="css">body.hasHover a:hover {
  color: blue;
}</code>
Copier après la connexion
Copier après la connexion

Cette méthode active les effets de survol lorsqu'une souris est détectée et les désactive lorsqu'elle est touchée.

Recommandations de mise en œuvre

Pour les navigateurs modernes, un une combinaison de règles conditionnelles JavaScript et CSS utilisant des classes est recommandée. Pour les navigateurs existants, la suppression des styles :hover basée sur JavaScript est une option viable.

Ressources supplémentaires :

  • [Exemple GitHub](https:// jsfiddle.net/57tmy8j3/)

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