2017-04-09 6 views
0

ich diese sass Übergänge haben:wie verschachtelte Übergänge verwenden, um mit 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; 
     } 
     } 

die Hover funktioniert gut, und die Übergänge funktioniert auch mit Ausnahme des .artistInfo Übergang.

Antwort

1

Sie können die Anzeigeeigenschaft nicht animieren. Was können Sie tun, animieren ist Opazität

.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

nicht funktioniert, weil ich versuche, einen Übergang von einem anderen Element zu machen Hover – imjustaguy

+0

Ist es das nächste Geschwisterelement oder ein Kind von '.card'? –

+0

es ist das nächste Element – imjustaguy

0

Vielleicht ist da „}“ in der falschen Stelle „.card: schweben“

richtig:

.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

nein, seinen an der richtigen Stelle, denn wenn ich die .card schweben sollte der .artist erscheinen, und es funktioniert gut, aber ist nicht am Übergang arbeitet in die Anzeige: Block, arbeiten nur den Kastenschatten und den Randübergang – imjustaguy

0

Ihre Verschachtelung korrekt ist einfach haben keinen Übergang auf Ihre '.artistInfo'-Klasse. Die Aktualisierung sollte folgendermaßen funktionieren:

.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

sein nicht funktioniert, ich denke, das Problem ist, weil die verschachtelte .artistInfo nicht seinen eigenen Hover haben, und thats die Weise die Übergänge funktioniert, aber ich versuche noch, den Weg zu finieren – imjustaguy

+0

Vom Arbeitsspeicher aus können Sie möglicherweise nicht auf die Anzeigeeigenschaft übergehen. Ich habe oben True aktualisiert, dass Sie die sichtbare Deckkraft-Eigenschaft überführen. Hoffe das funktioniert! Bearbeiten: Sie müssen möglicherweise auch die Anzeigeeigenschaft entfernen, aber ich bin mir nicht sicher, ob das zu Größenproblemen bei Ihren HTML-Geschwistern führt, ohne dass die Seite – Deanmv

Verwandte Themen