Chciałbym pokazać element div po najechaniu kursorem na element w vue.js. Ale nie wydaje mi się, żeby to działało.
Wygląda na to, że w vue.js. nie ma zdarzenia dla najechania myszą lub najechania myszą. Czy to prawda?
Czy byłoby możliwe połączenie metod jquery hover i vue?
javascript
vue.js
Anders Andersen
źródło
źródło
Odpowiedzi:
Oto roboczy przykład tego, o co myślę, że prosisz.
http://jsfiddle.net/1cekfnqw/3017/
źródło
v-on:mouseover="mouseOver"
ale nie wspomniał, w której wersji vue zmieniła się składnia@mouseover:mouseover
wydaje mi się, że powyższa logika dla najechania myszą jest nieprawidłowa. po prostu odwraca się, gdy mysz się unosi. użyłem poniższego kodu. wydaje się, że działa doskonale.
w instancji vue
Mam nadzieję, że to pomoże
źródło
data: () => ({ upHere: false })
Tutaj nie ma potrzeby stosowania metody.
HTML
JS
źródło
v-on:mouseover
skrótu lub skrótu@mouseover
z dokumentacji vuejs.org/guide/syntax.html#v-on-Shorthandon
zv-on:
lub@
do jednego z atrybutów zdarzeń html. w3schools.com/tags/ref_eventattributes.aspAby pokazać elementy potomne lub rodzeństwo, jest to możliwe tylko za pomocą CSS. Jeśli używasz
:hover
przed kombinatorów (+
,~
,>
,space
). Wtedy styl nie dotyczy elementu najechanego kursorem.HTML
CSS
źródło
Z
mouseover
imouseleave
zdarzenia można zdefiniować funkcję przełączania, który implementuje ten logiczny i reagować na wartości w renderingu.Sprawdź ten przykład:
źródło
@mouseover="btn-color='btn-warning' @mouseleave="btn-color='btn-primary' :class="btn btn-block { btn-color}"
Ponieważ
mouseover
tylko element pozostaje widoczny, gdy mysz opuści element najechany kursorem, dodałem:@mouseover="active = !active" @mouseout="active = !active"
źródło
Możliwe jest przełączenie klasy po najechaniu kursorem ściśle w obrębie szablonu składnika, jednak nie jest to praktyczne rozwiązanie z oczywistych powodów. Z drugiej strony, przy tworzeniu prototypów uważam, że nie trzeba definiować właściwości danych ani programów obsługi zdarzeń w skrypcie.
Oto przykład, jak możesz eksperymentować z kolorami ikon za pomocą Vuetify.
źródło
Wpadłem na ten sam problem i rozwiązałem go!
źródło
Jest poprawny działający JSFiddle: http://jsfiddle.net/1cekfnqw/176/
źródło
Chociaż dałbym aktualizację przy użyciu nowego interfejsu API kompozycji.
Składnik
Funkcja kompozycji wielokrotnego użytku
Utworzenie
useHover
funkcji umożliwi ponowne użycie w dowolnych komponentach.Oto krótki przykład wywołania funkcji w komponencie Vue.
Możesz także użyć biblioteki,
@vuehooks/core
która zawiera wiele przydatnych funkcji, w tymuseHover
.źródło
Oto bardzo prosty przykład dla MouseOver i MouseOut:
źródło
Proszę spojrzeć na pakiet vue-mouseover , jeśli nie jesteś zadowolony, jak wygląda ten kod:
vue-mouseover udostępnia
v-mouseover
dyrektywę, która automatycznie aktualizuje określoną właściwość kontekstu danych, gdy kursor wchodzi lub opuszcza element HTML, do którego jest dołączona dyrektywa.Domyślnie w następnym przykładzie
isMouseover
właściwość będzie miała miejsce,true
gdy kursor znajduje się nad elementem HTML, a wfalse
przeciwnym razie:Również domyślnie
isMouseover
zostanie przypisany początkowo, gdyv-mouseover
zostanie dołączony dodiv
elementu, więc nie pozostanie nieprzypisany przed pierwszym zdarzeniemmouseenter
/mouseleave
.Możesz określić wartości niestandardowe za pomocą
v-mouseover-value
dyrektywy:lub
Niestandardowe wartości domyślne można przekazać do pakietu za pośrednictwem obiektu opcji podczas instalacji.
źródło