Maison > Questions et réponses > le corps du texte
P粉3110892792023-08-22 09:21:07
Vous devez masquer l'élément d'une autre manière pour qu'il fonctionne correctement.
J'ai obtenu l'effet en combinant deux <div>
都设置为绝对定位,并将隐藏的一个设置为 opacity: 0
.
Si vous ajoutez display
属性从 none
切换到 block
, l'effet de transition pour les autres éléments ne se produira pas.
Pour résoudre ce problème, autorisez toujours les éléments à être display: block
, mais masquez les éléments de l'une des manières suivantes :
height
设置为 0
. opacity
设置为 0
. overflow: hidden
. Il y a peut-être d'autres solutions, mais si vous basculez l'élément sur display: none
, vous ne pourrez pas effectuer la transition. Par exemple, vous pourriez essayer quelque chose de similaire à :
div { display: none; transition: opacity 1s ease-out; opacity: 0; } div.active { opacity: 1; display: block; }
Mais cela ne fonctionnera pas. D'après mon expérience, j'ai constaté que cela n'a aucun effet. Vous devez donc toujours conserver les éléments
- mais vous pouvez contourner ce problème en :
div { transition: opacity 1s ease-out; opacity: 0; height: 0; overflow: hidden; } div.active { opacity: 1; height: auto; }
P粉7291982072023-08-22 00:45:19
Vous pouvez connecter deux effets de transition ou plus, et visibility
cela s'avère pratique.
div { border: 1px solid #eee; } div > ul { visibility: hidden; opacity: 0; transition: visibility 0s, opacity 0.5s linear; } div:hover > ul { visibility: visible; opacity: 1; }
<div> <ul> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> </ul> </div>