Ich möchte ein div anzeigen, wenn ich mit der Maus über ein Element in vue.js schwebe. Aber ich kann es nicht zum Laufen bringen.
Es sieht so aus, als gäbe es in vue.js kein Ereignis für Hover oder Mouseover. Ist das wirklich wahr?
Wäre es möglich, jquery hover- und vue-Methoden zu kombinieren?
javascript
vue.js
Anders Andersen
quelle
quelle
Antworten:
Hier ist ein funktionierendes Beispiel dafür, wonach Sie meiner Meinung nach fragen.
http://jsfiddle.net/1cekfnqw/3017/
quelle
v-on:mouseover="mouseOver"
aber nicht erwähnt, in welcher Version von vue sich die Syntax geändert hat@mouseover:mouseover
Ich denke, über Logik für Schwebeflug ist falsch. es ist nur umgekehrt, wenn die Maus schwebt. Ich habe unten Code verwendet. es scheint vollkommen in Ordnung zu funktionieren.
auf vue Instanz
hoffentlich hilft das
quelle
data: () => ({ upHere: false })
Hier ist keine Methode erforderlich.
HTML
JS
quelle
v-on:mouseover
oder die Verknüpfung@mouseover
gemäß den Dokumenten vuejs.org/guide/syntax.html#v-on-Shorthandon
mitv-on:
oder@
für eine der HTML - Ereignisattribute. w3schools.com/tags/ref_eventattributes.aspDas Anzeigen von untergeordneten oder geschwisterlichen Elementen ist nur mit CSS möglich. Wenn Sie
:hover
vor combinators (+
,~
,>
,space
). Dann gilt der Stil nicht für schwebende Elemente.HTML
CSS
quelle
Mit
mouseover
undmouseleave
events können Sie eine Umschaltfunktion definieren, die diese Logik implementiert und auf den Wert im Rendering reagiert.Überprüfen Sie dieses Beispiel:
quelle
@mouseover="btn-color='btn-warning' @mouseleave="btn-color='btn-primary' :class="btn btn-block { btn-color}"
Da
mouseover
nur das Element sichtbar bleibt, wenn die Maus das schwebende Element verlässt, habe ich Folgendes hinzugefügt:@mouseover="active = !active" @mouseout="active = !active"
quelle
Es ist möglich, eine Klasse beim Schweben streng innerhalb der Vorlage einer Komponente umzuschalten. Dies ist jedoch aus offensichtlichen Gründen keine praktische Lösung. Für das Prototyping hingegen finde ich es nützlich, keine Dateneigenschaften oder Ereignishandler im Skript definieren zu müssen.
Hier ist ein Beispiel, wie Sie mit Vuetify mit Symbolfarben experimentieren können.
quelle
Ich hatte das gleiche Problem und arbeite es aus!
quelle
Es gibt eine korrekt funktionierende JSFiddle: http://jsfiddle.net/1cekfnqw/176/
quelle
Obwohl ich ein Update mit der neuen Kompositions-API geben würde.
Komponente
Wiederverwendbare Kompositionsfunktion
Durch das Erstellen einer
useHover
Funktion können Sie alle Komponenten wiederverwenden.Hier ist ein kurzes Beispiel für den Aufruf der Funktion in einer Vue-Komponente.
Sie können auch eine Bibliothek verwenden,
@vuehooks/core
die viele nützliche Funktionen enthält, einschließlichuseHover
.quelle
Hier ist ein sehr einfaches Beispiel für MouseOver und MouseOut:
quelle
Bitte schauen Sie sich das vue-mouseover- Paket an, wenn Sie nicht zufrieden sind, wie dieser Code aussieht:
vue-mouseover bietet a
v-mouseover
Direktive, die die angegebene Datenkontexteigenschaft automatisch aktualisiert, wenn der Cursor ein HTML-Element betritt oder verlässt, an das die Direktive angehängt ist.Standardmäßig wird im nächsten Beispiel die
isMouseover
Eigenschaft angezeigt ,true
wenn sich der Cursor über einem HTML-Element befindet, undfalse
ansonsten:Ebenfalls standardmäßig
isMouseover
wird zunächst zugewiesen , wennv-mouseover
an das gebunden istdiv
Element, so wird es nicht bleiben nicht zugewiesen vor dem erstenmouseenter
/mouseleave
Ereignis.Sie können benutzerdefinierte Werte über die
v-mouseover-value
Direktive angeben :oder
Benutzerdefinierte Standardwerte können während des Setups über das Optionsobjekt an das Paket übergeben werden .
quelle