Je voudrais afficher un div lors du survol d'un élément dans vue.js. Mais je n'arrive pas à le faire fonctionner.
Il semble qu'il n'y ait aucun événement pour le survol ou le survol de la souris dans vue.js. Est-ce vraiment vrai?
Serait-il possible de combiner les méthodes jquery hover et vue?
javascript
vue.js
Anders Andersen
la source
la source
Réponses:
Voici un exemple concret de ce que je pense que vous demandez.
http://jsfiddle.net/1cekfnqw/3017/
la source
v-on:mouseover="mouseOver"
mais n'a pas mentionné dans quelle version de vue la syntaxe a changé@mouseover:mouseover
Je pense que la logique ci-dessus pour le survol est incorrecte. il s'inverse simplement lorsque la souris survole. J'ai utilisé le code ci-dessous. cela semble fonctionner parfaitement bien.
sur vue instance
J'espère que cela pourra aider
la source
data: () => ({ upHere: false })
Il n'y a pas besoin de méthode ici.
HTML
JS
la source
v-on:mouseover
ou l' autre ou le raccourci@mouseover
selon la documentation vuejs.org/guide/syntax.html#v-on-Shorthandon
parv-on:
ou@
pour l'un des attributs d'événement html. w3schools.com/tags/ref_eventattributes.aspPour afficher des éléments enfants ou frères, c'est possible avec CSS uniquement. Si vous utilisez
:hover
avant combinateur (+
,~
,>
,space
). Ensuite, le style ne s'applique pas à l'élément survolé.HTML
CSS
la source
Avec les événements
mouseover
etmouseleave
, vous pouvez définir une fonction bascule qui implémente cette logique et réagit sur la valeur dans le rendu.Vérifiez cet exemple:
la source
@mouseover="btn-color='btn-warning' @mouseleave="btn-color='btn-primary' :class="btn btn-block { btn-color}"
Avec
mouseover
seulement les séjours à l'élément visible lorsque les feuilles de souris l'élément plané, alors j'ai ajouté ceci:@mouseover="active = !active" @mouseout="active = !active"
la source
Il est possible de basculer une classe en survolant strictement dans le modèle d'un composant, cependant, ce n'est pas une solution pratique pour des raisons évidentes. Pour le prototypage en revanche, je trouve utile de ne pas avoir à définir des propriétés de données ou des gestionnaires d'événements dans le script.
Voici un exemple de la façon dont vous pouvez expérimenter les couleurs des icônes à l'aide de Vuetify.
la source
J'ai rencontré le même problème, et je le résolve!
la source
Il existe un JSFiddle qui fonctionne correctement: http://jsfiddle.net/1cekfnqw/176/
la source
Bien que je donne une mise à jour en utilisant la nouvelle api de composition.
Composant
Fonction de composition réutilisable
La création d'une
useHover
fonction vous permettra de la réutiliser dans n'importe quel composant.Voici un exemple rapide appelant la fonction à l'intérieur d'un composant Vue.
Vous pouvez également utiliser une bibliothèque comme celle
@vuehooks/core
qui contient de nombreuses fonctions utiles, notammentuseHover
.la source
Voici un exemple très simple pour MouseOver et MouseOut:
la source
Veuillez jeter un œil au package vue-mouseover si vous n'êtes pas satisfait de l'apparence de ce code:
vue-mouseover fournit une
v-mouseover
directive qui met à jour automatiquement la propriété de contexte de données spécifiée lorsque le curseur entre ou quitte un élément HTML auquel la directive est attachée.Par défaut, dans l'exemple suivant, la
isMouseover
propriété seratrue
lorsque le curseur se trouve sur un élément HTML etfalse
sinon:De plus, par défaut,
isMouseover
il sera initialement attribué lorsqu'ilv-mouseover
est attaché à l'div
élément, de sorte qu'il ne restera pas non affecté avant le premier événementmouseenter
/mouseleave
.Vous pouvez spécifier des valeurs personnalisées via la
v-mouseover-value
directive:ou
Les valeurs par défaut personnalisées peuvent être transmises au package via l' objet d'options lors de l'installation.
la source