Saya tahu, ini bukanlah solusi untuk pertanyaan Anda, karena Anda memintanya
tampilan + opasitas
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:
.child {
left: -2000px;
opacity: 0;
visibility: hidden;
transition: left 0s 0.8s, visibility 0s 0.8s, opacity 0.8s;
}
.parent:hover .child {
left: 0;
opacity: 1;
visibility: visible;
transition: left 0s, visibility 0s, opacity 0.8s;
}
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:
transition: left 0s, visibility 0s, opacity 0.8s;
Jika tidak ada hover, atau penunjuk mouse dipindahkan dari elemen, seseorang harus menunggu hingga perubahan opasitas selesai sebelum elemen dapat dipindahkan dari layar:
transition: left 0s 0.8s, visibility 0s 0.8s, opacity 0.8s;
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.