Biliyorum, bu gerçekten sorunuz için bir çözüm değil, çünkü siz soruyorsunuz
görüntü + opaklık
Yaklaşımım daha genel bir soruyu çözüyor, ancak belki de bu, display
ile birlikte kullanılarak çözülmesi gereken arka plan problemiydi opacity
.
Arzum, Elementi görünmezken yoldan çekmekti. Bu çözüm tam olarak şunu yapar: Öğeyi uzağa taşır ve bu geçiş için kullanılabilir:
.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;
}
Bu kod, herhangi bir tarayıcı öneki veya geriye dönük uyumluluk korsanlığı içermez. Artık ihtiyaç duyulmadığından, öğenin nasıl uzaklaştığı kavramını gösteriyor.
İlginç olan kısım, iki farklı geçiş tanımıdır. Fare işaretçisi .parent
öğenin üzerine geldiğinde , .child
öğenin hemen yerine yerleştirilmesi gerekir ve ardından opaklık değişecektir:
transition: left 0s, visibility 0s, opacity 0.8s;
Fareyle üzerine gelme olmadığında veya fare işaretçisi öğenin dışına taşındığında, öğe ekrandan taşınmadan önce opaklık değişikliğinin bitmesini beklemek gerekir:
transition: left 0s 0.8s, visibility 0s 0.8s, opacity 0.8s;
Nesneyi uzaklaştırmak, ayarın display:none
düzeni bozmayacağı bir durumda uygun bir alternatif olacaktır.
Umarım bu soruya cevap vermemiş olsam da kafama çivi çakarım.