Apakah ada cara untuk melakukan kebalikan dari :hover
hanya menggunakan CSS? Seperti: jika :hover
ada on Mouse Enter
, apakah ada CSS yang setara dengan on Mouse Leave
?
Contoh:
Saya memiliki menu HTML menggunakan item daftar. Saat saya mengarahkan kursor ke salah satu item, ada animasi warna CSS dari #999
ke black
. Bagaimana saya dapat membuat efek sebaliknya saat mouse meninggalkan area item, dengan animasi dari black
ke #999
?
(Ingatlah bahwa saya tidak ingin hanya menjawab contoh ini, tetapi seluruh masalah "kebalikan dari :hover
".)
:hover
cukup sederhana:not(:hover)
; Namun,:hover
ini tidak identik denganonmouseenter
juga tidak:not(:hover)
sama denganonmouseleave
. CSS tidak memiliki konsep peristiwa DOM.:hover
berarti "elemen yang memiliki penunjuk mouse di atasnya". Ini tidak menunjukkan jika penunjuk mouse dialihkan dari elemen lain ke elemen ini. Ini hanya berarti bahwa penunjuk mouse saat ini berada di elemen.:not(:hover)
akan diterapkan. Ini demo: jsfiddle.net/BoltClock/rghBXJawaban:
Jika saya memahaminya dengan benar, Anda dapat melakukan hal yang sama dengan memindahkan transisi Anda ke tautan daripada status hover:
http://jsfiddle.net/spacebeers/sELKu/3/
Definisi hover adalah:
Dengan definisi tersebut kebalikan dari hover adalah setiap titik di mana mouse tidak berada di atasnya. Seseorang yang jauh lebih pintar dari saya telah melakukan artikel ini, mengatur transisi yang berbeda di kedua negara bagian - http://css-tricks.com/different-transitions-for-hover-on-hover-off/
sumber
:hover
Anda kutip berasal dari W3Schools, yang sama sekali bukan sumber yang berwibawa. Spesifikasi sebenarnya dapat ditemukan di w3.org/TR/CSS21/selector.html#dynamic-pseudo-classes , meskipun itu bukan penjelasan yang paling dapat diakses.Cukup gunakan transisi CSS, bukan animasi.
Demo langsung
sumber
:hover
.Tidak ada properti eksplisit untuk meninggalkan mouse di CSS.
Anda dapat menggunakan: arahkan kursor ke semua elemen lain kecuali item yang dimaksud untuk mendapatkan efek ini. Tapi aku tidak yakin seberapa praktisnya itu.
Saya pikir Anda harus melihat solusi JS / jQuery.
sumber
Anda dapat menggunakan transisi CSS3
Beberapa tautan bagus:
http://css-tricks.com/different-transitions-for-hover-on-hover-off/
http://www.alistapart.com/articles/understanding-css3-transitions/
sumber
Meskipun jawaban di sini cukup, saya pikir contoh W3Schools tentang masalah ini sangat mudah (ini langsung menghilangkan kebingungan (bagi saya)).
Singkatnya, untuk transisi di mana Anda ingin animasi "masuk" dan "keluar" sama, Anda perlu menggunakan transisi pada pemilih utama
.button
daripada di pemilih arahkan kursor.button:hover
. Untuk transisi di mana Anda ingin animasi "masuk" dan "keluar" berbeda, Anda perlu menentukan transisi pemilih utama dan pemilih kursor yang berbeda.sumber
Letakkan waktu durasi Anda di pilihan non-hover:
sumber
Cukup tambahkan transisi ke elemen yang Anda ganggu. Ketahuilah bahwa mungkin ada beberapa efek saat halaman dimuat. Seperti jika Anda membuat perubahan radius batas, Anda akan melihatnya saat dom dimuat.
sumber
Anda telah salah paham
:hover
; dikatakan bahwa mouse berada di atas suatu item, bukan mouse baru saja memasuki item tersebut.Anda dapat menambahkan animasi ke selektor tanpa
:hover
mendapatkan efek yang Anda inginkan.Transisi adalah opsi yang lebih baik: http://jsfiddle.net/Cvx96/
sumber
Kebalikan dari
:hover
tampaknya:link
.(edit: tidak teknis yang berlawanan karena ada 4 pemilih
:link
,:visited
,:hover
dan:active
Five jika Anda termasuk.:focus
.)Misalnya saat menentukan aturan
.button:hover{ text-decoration:none }
untuk menghapus garis bawah pada tombol, garis bawah muncul saat Anda menggulung tombol di beberapa browser. Saya sudah memperbaikinya dengan.button:hover, .button:link{ text-decoration:none }
Ini tentu saja hanya berfungsi untuk elemen yang sebenarnya merupakan tautan (memiliki atribut href)
sumber
:link
cukup pilih tautan, sesederhana itu. Lihat di sini definisi:link
: developer.mozilla.org/en-US/docs/Web/CSS/%3AlinkCukup tambahkan transisi dan nama animasi pada inicial kelas, dalam kasus Anda, ul li a, cukup tambahkan properti "transisi" dan hanya itu yang Anda butuhkan
sumber