Saya punya masalah dengan animasi CSS3.
.child {
opacity: 0;
display: none;
-webkit-transition: opacity 0.5s ease-in-out;
-moz-transition: opacity 0.5s ease-in-out;
transition: opacity 0.5s ease-in-out;
}
.parent:hover .child {
opacity: 0.9;
display: block;
}
Kode ini hanya berfungsi jika saya menghapus perubahan display
.
Saya ingin mengubah tampilan tepat setelah hover tetapi opacity harus diubah menggunakan transisi.
Jawaban:
Berdasarkan jawaban Michaels ini adalah kode CSS yang sebenarnya untuk digunakan
sumber
Anda dapat melakukannya dengan animasi CSS:
sumber
Jika memungkinkan - gunakan
visibility
sebagai penggantidisplay
Misalnya:
sumber
Solusi ini berfungsi:
tentukan "bingkai utama":
Gunakan "bingkai utama" ini saat "arahkan kursor":
sumber
Saya menggunakan ini untuk mencapainya. Mereka memudar saat melayang tetapi tidak mengambil ruang saat disembunyikan, sempurna!
sumber
Saya berubah sedikit tetapi hasilnya indah.
Terimakasih semuanya.
sumber
visibility: hidden;
ke .child /visibility:visible;
ke hover dan ini akan memperbaiki masalah pembaca layarAda metode lain yang bagus untuk menyelesaikan ini dengan menggunakan pointer-events:
Sayangnya, ini tidak didukung di IE10 dan di bawahnya.
sumber
Saya memiliki masalah yang sama. Saya mencoba menggunakan animasi alih-alih transisi - seperti yang disarankan oleh @MichaelMullany dan @Chris - tetapi itu hanya berfungsi untuk browser webkit bahkan jika saya menyalin-tempel dengan awalan "-moz" dan "-o".
Saya bisa mendapatkan sekitar masalah dengan menggunakan
visibility
bukannyadisplay
. Ini berfungsi untuk saya karena elemen anak sayaposition: absolute
, jadi aliran dokumen tidak terpengaruh. Mungkin berhasil untuk orang lain juga.Beginilah tampilan kode asli menggunakan solusi saya:
sumber
Jika Anda memicu perubahan dengan JS, katakanlah saat mengklik, ada solusi yang bagus.
Anda melihat masalah terjadi karena animasi diabaikan di display: tidak ada elemen kecuali browser menerapkan semua perubahan sekaligus dan elemen tidak pernah display: blok sementara tidak dianimasikan pada saat yang sama.
Triknya adalah meminta browser untuk merender bingkai setelah mengubah visibilitas tetapi sebelum memicu animasi.
Berikut adalah contoh JQuery:
sumber
Pada elemen absolut atau tetap, Anda juga bisa menggunakan z-index:
Elemen lain harus memiliki indeks-z antara -100 dan 100 sekarang.
sumber
type=password
bidang. Ini tidak terlihat.Saya tahu, ini bukanlah solusi untuk pertanyaan Anda, karena Anda memintanya
Pendekatan saya memecahkan pertanyaan yang lebih umum, tetapi mungkin ini adalah masalah latar belakang yang harus diselesaikan dengan menggunakan
display
kombinasi denganopacity
.Keinginan saya adalah menyingkirkan Elemen saat tidak terlihat. Solusi ini melakukan persis seperti itu: Ini memindahkan elemen keluar, dan ini dapat digunakan untuk transisi:
Kode ini tidak mengandung awalan browser atau retasan kompatibilitas mundur. Itu hanya menggambarkan konsep bagaimana elemen dipindahkan karena tidak diperlukan lagi.
Bagian yang menarik adalah dua definisi transisi yang berbeda. Saat penunjuk mouse mengarahkan
.parent
elemen,.child
elemen harus segera dipasang dan opasitas akan berubah:Jika tidak ada hover, atau penunjuk mouse dipindahkan dari elemen, seseorang harus menunggu hingga perubahan opasitas selesai sebelum elemen dapat dipindahkan dari layar:
Memindahkan objek akan menjadi alternatif yang layak jika pengaturan
display:none
tidak akan merusak tata letak.Saya harap saya tepat sasaran untuk pertanyaan ini meskipun saya tidak menjawabnya.
sumber
Satu hal yang saya lakukan adalah menyetel margin status awal menjadi sesuatu seperti "margin-left: -9999px" sehingga tidak muncul di layar, lalu setel ulang "margin-left: 0" pada status hover. Dalam kasus itu, simpan "display: block". Melakukan trik untuk saya :)
Edit: Simpan status dan tidak kembali ke status hover sebelumnya? Ok disini kita butuh JS:
sumber
Untuk memiliki animasi di kedua cara onHoverIn / Out saya melakukan solusi ini. Semoga bisa membantu seseorang
sumber
CARA MENGANIMASI OPASITAS DENGAN CSS:
ini adalah kode saya:
kode CSS
atau periksa file demo ini
sumber
display
properti itu baru saja dihapus.display:
tidak dapat dialihkan. Anda mungkin perlu menggunakan jQuery untuk melakukan apa yang ingin Anda lakukan.sumber