Lo sé, esto no es realmente una solución para tu pregunta, porque pides
pantalla + opacidad
Mi enfoque resuelve una pregunta más general, pero tal vez este fue el problema de fondo que debería resolverse usando display
en combinación conopacity
.
Mi deseo era sacar el Elemento del camino cuando no es visible. Esta solución hace exactamente eso: mueve el elemento fuera de la distancia, y esto se puede usar para la transición:
.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;
}
Este código no contiene prefijos de navegador ni trucos de compatibilidad con versiones anteriores. Simplemente ilustra el concepto de cómo se aleja el elemento ya que ya no se necesita.
La parte interesante son las dos definiciones de transición diferentes. Cuando el puntero del mouse se desplaza sobre el .parent
elemento, el .child
elemento debe colocarse en su lugar inmediatamente y luego se cambiará la opacidad:
transition: left 0s, visibility 0s, opacity 0.8s;
Cuando no hay desplazamiento, o el puntero del mouse se movió fuera del elemento, uno tiene que esperar hasta que el cambio de opacidad haya terminado antes de que el elemento pueda moverse fuera de la pantalla:
transition: left 0s 0.8s, visibility 0s 0.8s, opacity 0.8s;
Alejar el objeto será una alternativa viable en el caso de que la configuración display:none
no rompa el diseño.
Espero haber dado en el clavo con esta pregunta, aunque no la he respondido.