Saya ingin menunjukkan div saat mengarahkan kursor ke elemen di vue.js. Tapi sepertinya aku tidak bisa membuatnya bekerja.
Sepertinya tidak ada peristiwa untuk hover atau mouseover di vue.js. Benarkah ini?
Apakah mungkin untuk menggabungkan metode jquery hover dan vue?
javascript
vue.js
Anders Andersen
sumber
sumber
Jawaban:
Berikut adalah contoh kerja dari apa yang menurut saya Anda minta.
http://jsfiddle.net/1cekfnqw/3017/
sumber
v-on:mouseover="mouseOver"
tetapi tidak menyebutkan versi vue mana yang sintaksnya berubah@mouseover:mouseover
Saya merasa logika di atas untuk hover tidak benar. itu hanya terbalik saat mouse melayang. saya telah menggunakan kode di bawah ini. tampaknya bekerja dengan baik.
pada vue instance
Semoga membantu
sumber
data: () => ({ upHere: false })
Tidak perlu metode di sini.
HTML
JS
sumber
v-on:mouseover
atau pintasan@mouseover
sesuai dengan dokumen vuejs.org/guide/syntax.html#v-on-Shorthandon
denganv-on:
atau@
untuk atribut peristiwa html apa pun. w3schools.com/tags/ref_eventattributes.aspUntuk menampilkan elemen anak atau saudara, dimungkinkan hanya dengan CSS. Jika Anda menggunakan
:hover
sebelum combinators (+
,~
,>
,space
). Kemudian gaya diterapkan untuk tidak elemen yang di-hover.HTML
CSS
sumber
Dengan peristiwa
mouseover
danmouseleave
Anda dapat menentukan fungsi sakelar yang mengimplementasikan logika ini dan bereaksi pada nilai dalam rendering.Lihat contoh ini:
sumber
@mouseover="btn-color='btn-warning' @mouseleave="btn-color='btn-primary' :class="btn btn-block { btn-color}"
Dengan
mouseover
hanya elemen yang tetap terlihat saat mouse meninggalkan elemen yang di-hover, jadi saya menambahkan ini:@mouseover="active = !active" @mouseout="active = !active"
sumber
Dimungkinkan untuk mengganti kelas dengan hover secara ketat di dalam template komponen, namun, ini bukan solusi praktis karena alasan yang jelas. Di sisi lain, untuk pembuatan prototipe, saya merasa berguna untuk tidak perlu mendefinisikan properti data atau penangan kejadian di dalam skrip.
Berikut adalah contoh bagaimana Anda dapat bereksperimen dengan warna ikon menggunakan Vuetify.
sumber
Saya datang dengan masalah yang sama, dan saya menyelesaikannya!
sumber
Ada JSFiddle yang berfungsi dengan benar: http://jsfiddle.net/1cekfnqw/176/
sumber
Meskipun saya akan memberikan pembaruan menggunakan api komposisi baru.
Komponen
Fungsi Komposisi yang Dapat Digunakan Kembali
Membuat sebuah
useHover
fungsi akan memungkinkan Anda untuk menggunakan kembali komponen apa pun.Berikut adalah contoh singkat yang memanggil fungsi di dalam komponen Vue.
Anda juga dapat menggunakan pustaka seperti
@vuehooks/core
yang dilengkapi dengan banyak fungsi berguna termasukuseHover
.sumber
Berikut adalah contoh yang sangat sederhana untuk MouseOver dan MouseOut:
sumber
Silakan lihat paket vue-mouseover jika Anda tidak puas dengan tampilan kode ini:
vue-mouseover memberikan
v-mouseover
arahan yang secara otomatis memperbarui properti konteks data yang ditentukan ketika kursor masuk atau meninggalkan elemen HTML direktif dilampirkan.Secara default di
isMouseover
properti contoh berikutnya adalahtrue
ketika kursor berada di atas elemen HTML danfalse
sebaliknya:Juga secara default
isMouseover
akan ditetapkan pertama kali saatv-mouseover
dilampirkan kediv
elemen, sehingga tidak akan tetap ditetapkan sebelummouseenter
/mouseleave
acara pertama .Anda dapat menentukan nilai kustom melalui
v-mouseover-value
direktif:atau
Nilai default kustom dapat diteruskan ke paket melalui objek opsi selama penyiapan.
sumber