Eu gostaria de mostrar um div ao passar o mouse sobre um elemento em vue.js. Mas não consigo fazer funcionar.
Parece que não há evento para passar o mouse ou passar o mouse no vue.js. Isso é verdade mesmo?
Seria possível combinar os métodos jquery hover e vue?
javascript
vue.js
Anders Andersen
fonte
fonte
Respostas:
Aqui está um exemplo prático do que acho que você está pedindo.
http://jsfiddle.net/1cekfnqw/3017/
fonte
v-on:mouseover="mouseOver"
mas não mencionou em qual versão do vue a sintaxe mudou@mouseover:mouseover
Eu sinto que a lógica acima para pairar está incorreta. ele apenas inverte quando o mouse passa. eu usei o código abaixo. parece funcionar perfeitamente bem.
em vue instância
espero que ajude
fonte
data: () => ({ upHere: false })
Não há necessidade de um método aqui.
HTML
JS
fonte
v-on:mouseover
ou o atalho de@mouseover
acordo com os documentos vuejs.org/guide/syntax.html#v-on-Shorthandon
porv-on:
ou@
para qualquer um dos atributos de evento html. w3schools.com/tags/ref_eventattributes.aspPara mostrar elementos filhos ou irmãos, é possível apenas com CSS. Se você usar
:hover
antes de combinadores (+
,~
,>
,space
). Em seguida, o estilo não se aplica ao elemento pairado.HTML
CSS
fonte
Com os eventos
mouseover
emouseleave
você pode definir uma função de alternância que implementa essa lógica e reage ao valor na renderização.Veja este exemplo:
fonte
@mouseover="btn-color='btn-warning' @mouseleave="btn-color='btn-primary' :class="btn btn-block { btn-color}"
Com
mouseover
apenas o elemento permanece visível quando o mouse sai do elemento pairado, eu adicionei isto:@mouseover="active = !active" @mouseout="active = !active"
fonte
É possível alternar uma classe ao passar o mouse estritamente no modelo de um componente, no entanto, não é uma solução prática por motivos óbvios. Por outro lado, para prototipagem, acho útil não ter que definir propriedades de dados ou manipuladores de eventos dentro do script.
Aqui está um exemplo de como você pode experimentar cores de ícones usando o Vuetify.
fonte
Tive o mesmo problema e resolvi!
fonte
Há um JSFiddle funcionando corretamente: http://jsfiddle.net/1cekfnqw/176/
fonte
Embora eu dê uma atualização usando a nova API de composição.
Componente
Função de composição reutilizável
A criação de uma
useHover
função permitirá a reutilização em quaisquer componentes.Aqui está um exemplo rápido chamando a função dentro de um componente Vue.
Você também pode usar uma biblioteca como a
@vuehooks/core
que vem com muitas funções úteis, incluindouseHover
.fonte
Aqui está um exemplo muito simples para MouseOver e MouseOut:
fonte
Por favor, dê uma olhada no pacote vue-mouseover se você não estiver satisfeito com a aparência deste código:
vue-mouseover fornece uma
v-mouseover
diretiva que atualiza automaticamente a propriedade de contexto de dados especificada quando o cursor entra ou sai de um elemento HTML ao qual a diretiva está anexada.Por padrão, no próximo exemplo de
isMouseover
propriedade serátrue
quando o cursor estiver sobre um elemento HTML efalse
caso contrário:Além disso, por padrão
isMouseover
, será inicialmente atribuído quandov-mouseover
for anexado aodiv
elemento, portanto, não permanecerá sem atribuição antes do primeiromouseenter
/mouseleave
evento.Você pode especificar valores personalizados por meio da
v-mouseover-value
diretiva:ou
Os valores padrão personalizados podem ser transmitidos ao pacote por meio do objeto de opções durante a configuração.
fonte