Comment puis-je supprimer :hover?
J'ai un petit problème avec un script.
Je veux avoir une action par défaut sur :hover
pour les clients avec le Javascript désactivé, mais pour ceux avec Javascript activé, je veux une autre action (en fait... même action, mais je veux ajouter un petit effet de transition).
Donc... Comment puis-je faire cela? Je suis à l'aide de jQuery.
Vous devez vous connecter pour publier un commentaire.
Appliquer deux classes à la relvant élément. l'un contient le hover comportement, et contient tous les autres style.
Vous pouvez ensuite utiliser le jquery
méthode pour supprimer la classe avec le hover comportement, puis appliquer tout ce que vous voulez à l'aide de
Comment mettre de la
:hover
de repli dans une feuille de style qui n'est chargé que si javascript est désactivé?head
, <noscript> tag doit être enbody
. Depuis HTML5, noscript est autorisé à être enhead
donc le balisage HTML5 valide et ne peut pas être un problème.Ici est une solution sans hack classes:
CSS:
jQuery (utilise jQueryUI pour animer couleur):
démo
Je pense que la meilleure approche serait de laisser la
:hover
comportement comme une solution de repli pour les non-javascript utilisateurs et ensuite utiliser JQuery pour créer mouseover et mouseout des gestionnaires d'événements pour créer un effet différent pour le javascript est activé sur les utilisateurs.JQuery Javascript Library - Événements/passage de la souris
C'est une très vieille question, mais j'ai envie de dire que modernizr fournit une très bonne façon de mettre en œuvre ce type de réserves.
Il suffit d'inclure modernizr dans la tête et que vous pouvez le faire:
D'autre part, si vous voulez le faire de l'autre et de définir uniquement le css quand js est présent
Il est plus ou moins la même solution que l'ajout d'une info-tag pour le balisage, mais un peu plus robuste.
J'AI TROUVÉ VOTRE SOLUTION
fondamentalement, vous commencez par la redéfinition de ce que vous avez fait avec le css hover.
(naturellement, vous voulez faire cela par dynamiquement en tirant les informations du style)
puis faire ce que vous voulez en jquery avec effet de survol/mouseout événements
cela vous permet de garder le :hover événement dans votre css parce que jquery est la liaison de votre origine des styles à l'élément. En substance, la désactivation de l' :hover événement.
si votre css est:
votre jquery serait quelque chose comme:
Vous pouvez activer globalement le comportement à travers l'ensemble du document en utilisant une seule règle css, puis de désactiver la règle dans un tableau en javascript, lors de l'installation du nouveau gestionnaire d'événements.
Ajouter une classe à votre corps html de la balise:
Comportement par défaut dans votre css, disons en gras liens sur le vol stationnaire:
Et dans votre js, quand la course va supprimer le comportement par défaut et faire autre chose:
Vous pourriez bande :hover règles de style à partir d'un document.les feuilles de style.
Il suffit d'aller dans tous les styles CSS avec JavaScript et supprimer toutes les règles, qui contiennent ":hover" dans leur sélection. J'utilise cette méthode quand j'ai besoin de supprimer les :hover styles de bootstrap 2.
J'ai fait d'utiliser le trait de soulignement pour l'itération des tableaux, mais on pourrait écrire ceux avec de la pure js boucle:
}