¿Hay alguna forma de hacer lo contrario de :hover
usar solo CSS? Como en: si :hover
es así on Mouse Enter
, ¿hay un CSS equivalente a on Mouse Leave
?
Ejemplo:
Tengo un menú HTML con elementos de lista. Cuando coloco el cursor sobre uno de los elementos, hay una animación de color CSS de #999
a black
. ¿Cómo puedo crear el efecto contrario cuando el mouse abandona el área del elemento, con una animación de black
a #999
?
(Tenga en cuenta que no deseo responder solo a este ejemplo, sino a todo el problema del "opuesto de :hover
").
:hover
es bastante simple:not(:hover)
; sin embargo, no:hover
es sinónimo ni es lo mismo que . CSS no tiene ningún concepto de eventos DOM.onmouseenter
:not(:hover)
onmouseleave
:hover
simplemente significa "un elemento que tiene un puntero del mouse sobre él". No indica si el puntero del mouse pasó de otro elemento a este elemento. Simplemente significa que el puntero del mouse está actualmente en el elemento.:not(:hover)
se aplicará. Aquí hay una demostración: jsfiddle.net/BoltClock/rghBXRespuestas:
Si entiendo correctamente, podría hacer lo mismo moviendo sus transiciones al enlace en lugar del estado de desplazamiento:
http://jsfiddle.net/spacebeers/sELKu/3/
La definición de hover es:
Según esa definición, lo contrario de hover es cualquier punto en el que el mouse no esté sobre él. Alguien mucho más inteligente que yo ha hecho este artículo, estableciendo diferentes transiciones en ambos estados: http://css-tricks.com/different-transitions-for-hover-on-hover-off/
fuente
:hover
que ha citado es de W3Schools, que de ninguna manera es una fuente autorizada. La especificación real se puede encontrar en w3.org/TR/CSS21/selector.html#dynamic-pseudo-classes , aunque no es la explicación más accesible.Simplemente use transiciones CSS en lugar de animaciones.
Demo en vivo
fuente
:hover
estado normales .No, no hay una propiedad explícita para dejar el mouse en CSS.
Puede usar: coloque el cursor sobre todos los demás elementos, excepto el elemento en cuestión, para lograr este efecto. Pero no estoy seguro de cuán práctico sería eso.
Creo que debes buscar una solución JS / jQuery.
fuente
Puedes usar la transición CSS3
Algunos buenos enlaces:
http://css-tricks.com/different-transitions-for-hover-on-hover-off/
http://www.alistapart.com/articles/understanding-css3-transitions/
fuente
Aunque las respuestas aquí son suficientes, realmente creo que el ejemplo de W3Schools sobre este tema es muy sencillo (aclaró la confusión (para mí) de inmediato).
En resumen, para las transiciones en las que desea que las animaciones "entrar" y "salir" sean iguales, debe emplear transiciones en el selector principal en
.button
lugar del selector de desplazamiento.button:hover
. Para las transiciones en las que desea que las animaciones "entrar" y "salir" sean diferentes, deberá especificar diferentes transiciones del selector principal y del selector de desplazamiento.fuente
Ponga su tiempo de duración en la selección sin desplazamiento:
fuente
Simplemente agregue una transición al elemento con el que está jugando. Tenga en cuenta que puede haber algunos efectos cuando se carga la página. Como si hiciera un cambio de radio de borde, lo verá cuando se cargue el dom.
fuente
Has entendido mal
:hover
; dice que el mouse está sobre un elemento, en lugar de que el mouse acaba de ingresar al elemento.Puede agregar animación al selector sin
:hover
lograr el efecto que desea.Transitions es una mejor opción: http://jsfiddle.net/Cvx96/
fuente
Lo contrario de
:hover
parece ser:link
.(edit: técnicamente no es un opuesto, porque hay 4 selectores
:link
,:visited
,:hover
y:active
cinco si se incluye.:focus
).Por ejemplo, al definir una regla
.button:hover{ text-decoration:none }
para eliminar el subrayado de un botón, el subrayado aparece cuando quita el botón en algunos navegadores. He arreglado esto con.button:hover, .button:link{ text-decoration:none }
Esto, por supuesto, solo funciona para elementos que en realidad son enlaces (tienen el atributo href)
fuente
:link
simplemente selecciona enlaces, tan simple como eso. Mira aquí la definición de:link
: developer.mozilla.org/en-US/docs/Web/CSS/%3AlinkSolo agregue una transición y el nombre de la animación en la clase inicial, en su caso, ul li a, solo agregue una propiedad de "transición" y eso es todo lo que necesita
fuente