2017-04-09 1 views
0

J'ai cette transition SASS:comment utiliser des transitions imbriquées avec SASS

 .card{ 
     transition: all 0.5s ease; 
     position: relative; 
     height: auto; 
     } 

     .artistInfo{display: none;} 

     .card:hover{ 
     box-shadow: 10px 10px rgba(128, 128, 128, 0.37); 
     margin-top: -3%; 
     .artistInfo{ 
      display: block; 
     } 
     } 

les survols fonctionne très bien, et les transitions fonctionne aussi, sauf pour la transition .artistInfo.

Répondre

1

Vous ne pouvez pas animer la propriété d'affichage. Ce que vous pouvez faire est d'animer l'opacité

.card { 
    transition: all 0.5s ease; 
    position: relative; 
    height: auto; 
} 

.artistInfo { 
    opacity: 0; 
    position: absolute; 
} 

.card:hover { 
    box-shadow: 10px 10px rgba(128, 128, 128, 0.37); 
    margin-top: -3%; 
    &+.artistInfo { 
    opacity: 1; 
    } 
} 

http://codepen.io/anon/pen/XMLvqZ

+0

ne fonctionne pas, car j'essaie de faire une transition depuis un autre élément qui a le hover – imjustaguy

+0

Est-ce le prochain élément frère ou enfant de '.card'? –

+0

son élément suivant – imjustaguy

0

est peut-être parce que "}" est dans le mauvais endroit pour ".card: hover"

correct:

.card{ 
    transition: all 0.5s ease; 
    position: relative; 
    height: auto; 
} 

.artistInfo{display: none;} 

.card:hover{ 
    box-shadow: 10px 10px rgba(128, 128, 128, 0.37); 
    margin-top: -3%; 
} 
.artistInfo{ 
    display: block; 
} 
+0

non, son au bon endroit, parce que quand je passe la souris la .card l'.artist doit apparaître, et il fonctionne très bien, mais n'a pas fonctionné la transition l'affichage: bloc, ne fonctionne que l'ombre de la boîte et la transition de la marge – imjustaguy

0

Votre imbrication est correcte, vous n'avez tout simplement pas de transition votre classe '.artistInfo'. La mise à jour de ceci devrait fonctionner:

.card{ 
    transition: all 0.5s ease; 
    position: relative; 
    height: auto; 
} 

.artistInfo{ 
    opacity: 0; 
    display:none; 
    transition: all 0.5s ease 
} 

.card:hover{ 
    box-shadow: 10px 10px rgba(128, 128, 128, 0.37); 
    margin-top: -3%; 
    .artistInfo{ 
     opacity: 1; 
     display: block; 
     transition: all 0.5s ease 
    } 
} 
+0

son ne fonctionne pas, je pense que le problème est son imbriqué .artistInfo ne pas avoir son propre vol stationnaire, et c'est la façon dont les transitions fonctionne, mais je cherche encore – imjustaguy

+0

De la mémoire, vous ne pourrez peut-être pas effectuer de transition sur la propriété d'affichage. J'ai mis à jour true ci-dessus pour que vous transitions la propriété d'opacité visible. J'espère que cela fonctionne! Edit: vous devrez peut-être également supprimer la propriété d'affichage, mais je ne suis pas sûr que cela entraînera des problèmes de taille sur vos frères et sœurs HTML sans voir la page – Deanmv