Problème :
Lorsque les appareils tactiles visitent des sites Web, : survolez les déclencheurs de style CSS lors de clics ou de pressions. Cela peut être distrayant ou même rendre les éléments interactifs inaccessibles.
Objectif :
Supprimer ou ignorer toutes les déclarations CSS :hover pour les appareils tactiles sans connaître le sélecteur de chaque déclaration.
Solutions :
Supprimez toutes les règles CSS contenant :hover à l'aide de JavaScript.
<code class="javascript">if (hasTouch()) { for (var si in document.styleSheets) { for (var ri = styleSheet.rules.length - 1; ri >= 0; ri--) { if (styleSheet.rules[ri].selectorText.match(':hover')) { styleSheet.deleteRule(ri); } } } }</code>
Avantages :
Utilisez les blocs @media pour contenir les règles de survol.
<code class="css">@media (hover: hover) { a:hover { color: blue; } }</code>
Avantages :
Détecter les événements tactiles en utilisant JavaScript et ajoutez conditionnellement une classe CSS.
<code class="js">if (!hasTouch()) document.body.className += ' hasHover'</code>
<code class="css">body.hasHover a:hover { color: blue; }</code>
Avantages :
Activez ou désactivez les styles de survol en fonction du curseur de la souris et des événements tactiles.
<code class="js">function watchForHover() { document.addEventListener('touchstart', updateLastTouchTime, true) document.addEventListener('touchstart', disableHover, true) document.addEventListener('mousemove', enableHover, true) }</code>
Avantages :
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!