mobile safari liens conserve le focus après contact
Ma navigation est assez simple. J'ai un état de pointage qui ajoute une bordure et un dégradé transparent png arrière-plan à un texte, et une classe supplémentaire qui, lorsqu'ils sont ajoutés par jQuery, ajoute de la couleur derrière cette image transparente.
Si vous cliquez sur pour basculer de la classe dans un navigateur web, vous verrez la couleur viennent dans et hors, mais l'image de fond reste si vous n'avez jamais déplacer la souris en dehors du bouton. Ce comportement est normal.
Mon problème est que lors de l'utilisation d'un iPad, le tactile semble conserver l'état de pointage et le :hover propriétés ne jamais s'en aller, sauf si vous cliquez sur un autre bouton, auquel cas la persistance de l' :hover propriétés sont ajoutées à ce bouton jusqu'à ce que l'autre est pressé.
Je ne peux pas imaginer que je suis la première à ce problème, mais les recherches n'ai pas tourné que quoi que ce soit.
Aider?
Normal - Hover - Actif (via addClass() )
- ma seule pensée pour aujourd'hui est d'ajouter un script qui supprime le CSS pour le :hover propriété lors de l'affichage dans le navigateur Safari Mobile 🙁
Vous devez vous connecter pour publier un commentaire.
Hover est un CSS pseudo classe conçu pour fonctionner avec un pointeur non pas tant les événements tactiles. Vous voulez normalement d'éviter l'utilisation de planer complètement, car il n'a pas de sens sur mobile. L'une des façons les plus faciles à traiter est de placer votre hover CSS à l'intérieur d'une requête de média. Vous pouvez le faire en ciblant les tablettes ou écrans de bureau, ici, sont les deux solutions:
1 - Ciblage ipad:
2 - Ciblage des postes de travail:
Est valide. Vous pouvez modifier les valeurs de min et max de la largeur si vous remarquez que le CSS est déclenché de manière incorrecte dans certains appareils.
min-device-width
, donc il faudra encore travailler sur les ordinateurs de bureau avec une réduction des fenêtres de navigateur.Si vous êtes à l'aide de Modernizr, le no-touch classe sera ajouté à la racine de l'élément html pour non-touch. Ensuite, vous pouvez faire ceci:
C'est la façon dont je l'ai corrigé pour ma liste avec un hover:
CSS:
jQuery:
Et un correctif pour passez la souris sur l'arrière bouton de navigation...
ou
Pour les non-initiés, l'événement unload se produit avant que le navigateur quitte la page. En brouillant tous les liens dans la page sur les décharger, j'ai été en mesure de non-bâton de l'état de pointage. Retour à la page d'origine en utilisant le bouton précédent montre le lien cliqué dans l'état par défaut.
Malheureusement, un événement onclick ne semble pas déclencher le décharger, mais une actualisation dans iOS 5?!
Coincé Sur :hover - http://www.aaronpinero.com/articulated/2011/05/28/stuck-on-hover/
Utilisation de jQuery pour remplacer - http://www.nerdboy.co.uk/2009/01/use-jquery-to-replace-body-onunload/
pagehide
.J'ai couru à travers cette question. Mon problème est sur l'iPad, si j'ai puisé une ancre et d'un défilement légèrement, cliquez sur un événement n'est pas le feu, mais l'élément permettrait de conserver l'état de pointage CSS. Ma conviction est que l'iPad a été fait en conservant un état de focalisation et de l'application de l' :hover styles CSS dans un effort pour simuler l'expérience de bureau.
Un non-JS et pratiques de contournement est de ne pas livrer passez de styles pour les appareils tactiles s'il n'est pas un besoin pour eux. Les appareils tactiles n'ont pas un "véritable" état de pointage, mais il semble que hover est simulé lorsqu'un élément est concentré ou taraudés-et-défile sur.
Donc, avec Modernizr.js chargé, j'ai déplacé mon hover styles dans le champ d'application de l' .no-touch -
c'est à dire
Puis, lorsque l'élément est cliqué, je suis basculement d'une classe active sur elle.
Le seul point négatif à emporter est que vous n'obtenez pas une "mise à profit de l'état". Je n'ai pas encore étudier une solution pour que, comme il n'est pas vraiment important pour mes applications.
:active
sélecteur.vous avez besoin pour attraper les événements suivants
évènements touchstart - lorsque votre doigt touche l'écran
touchend - lorsque votre doigt quitte l'écran
pense que le stationnaire et unhover, si vous pouvez poster du code, nous pouvons vous aider si vous ne comprenez pas ce que je dis
Donner un exemple de code, les évènements touchstart et la fin devrait résoudre le problème
C'est un vieux post, mais j'ai eu du mal avec cela aujourd'hui en 2019, et je trouve cette solution propre et je veux le partager avec vous tous.
Fondamentalement, ce que nous faisons ici, c'est à l'aide de planer dans n'importe quel appareil avec mécanisme de pointeur. Aujourd'hui, il existe des logiciels avec html lecteurs pour une meilleure accessibilité du site et ne doit pas être une bonne idée, désactiver :hover pour tous les appareils mobiles.
Juste pour être clair, n'importe quel appareil, sans pointer du mécanisme hover ne prendra pas effet, sinon, nous avons appliqué le :hover style.
Si vous utilisez SCSS, je vous recommande de faire ce qui suit:
Si vous réinitialisez la valeur de l'arrière-plan à la valeur initiale, vous n'aurez plus de problèmes avec le bouton enfoncé sur les appareils <= 768px resolution
C'est une solution de contournement: