Me gustaría mostrar un div al pasar el cursor sobre un elemento en vue.js. Pero parece que no puedo hacerlo funcionar.
Parece que no hay ningún evento para pasar el mouse sobre vue.js. ¿Es esto realmente cierto?
¿Sería posible combinar los métodos jquery hover y vue?
javascript
vue.js
Anders Andersen
fuente
fuente
Respuestas:
Aquí hay un ejemplo práctico de lo que creo que está pidiendo.
http://jsfiddle.net/1cekfnqw/3017/
fuente
v-on:mouseover="mouseOver"
pero no mencionó en qué versión de vue cambió la sintaxis@mouseover:mouseover
Me siento por encima de la lógica para que el desplazamiento sea incorrecto. es simplemente inverso cuando el mouse se desplaza. He usado el siguiente código. parece funcionar perfectamente bien.
en vue instancia
Espero que ayude
fuente
data: () => ({ upHere: false })
No hay necesidad de un método aquí.
HTML
JS
fuente
v-on:mouseover
o el acceso directo@mouseover
según los documentos vuejs.org/guide/syntax.html#v-on-Shorthandon
conv-on:
o@
para cualquiera de los atributos de evento html. w3schools.com/tags/ref_eventattributes.aspPara mostrar elementos secundarios o hermanos, solo es posible con CSS. Si utiliza
:hover
antes de combinadores (+
,~
,>
,space
). Entonces el estilo se aplica no al elemento flotante.HTML
CSS
fuente
Con los eventos
mouseover
ymouseleave
puede definir una función de alternancia que implemente esta lógica y reaccione sobre el valor en la representación.Mira este ejemplo:
fuente
@mouseover="btn-color='btn-warning' @mouseleave="btn-color='btn-primary' :class="btn btn-block { btn-color}"
Con
mouseover
solo el elemento permanece visible cuando el mouse sale del elemento flotante, agregué esto:@mouseover="active = !active" @mouseout="active = !active"
fuente
Es posible alternar una clase en hover estrictamente dentro de la plantilla de un componente, sin embargo, no es una solución práctica por razones obvias. Para la creación de prototipos, por otro lado, me parece útil no tener que definir propiedades de datos o controladores de eventos dentro del script.
Aquí tienes un ejemplo de cómo puedes experimentar con colores de íconos usando Vuetify.
fuente
¡Se me ocurrió el mismo problema y lo soluciono!
fuente
Hay un JSFiddle que funciona correctamente: http://jsfiddle.net/1cekfnqw/176/
fuente
Aunque daría una actualización usando la nueva API de composición.
Componente
Función de composición reutilizable
La creación de una
useHover
función le permitirá reutilizar en cualquier componente.Aquí hay un ejemplo rápido que llama a la función dentro de un componente de Vue.
También puede utilizar una biblioteca como la
@vuehooks/core
que viene con muchas funciones útiles, incluidasuseHover
.fuente
Aquí hay un ejemplo muy simple para MouseOver y MouseOut:
fuente
Por favor, eche un vistazo al paquete vue-mouseover si no está satisfecho con el aspecto de este código:
vue-mouseover proporciona una
v-mouseover
directiva que actualiza automáticamente la propiedad de contexto de datos especificada cuando el cursor entra o sale de un elemento HTML al que está adjunta la directiva.Por defecto, en el siguiente ejemplo, la
isMouseover
propiedad serátrue
cuando el cursor esté sobre un elemento HTML y enfalse
caso contrario:También por defecto
isMouseover
se asignará inicialmente cuandov-mouseover
se adjunte aldiv
elemento, por lo que no quedará sin asignar antes del primermouseenter
/mouseleave
evento.Puede especificar valores personalizados a través de la
v-mouseover-value
directiva:o
Los valores predeterminados personalizados se pueden pasar al paquete a través del objeto de opciones durante la configuración.
fuente