我正在尝试使用SCSS创建一个带有关闭动画的汉堡菜单。但由于某些原因,动画并没有按预期的那样工作。
两个红色条以相同的方向旋转,尽管我在mixin中给了它们相反的方向。
@mixin bar-rotation($deg){
@keyframes bar-rotation {
0% {
transform: rotate(0);
}
100% {
transform: rotate($deg);
}
}
animation-name: bar-rotation;
animation-timing-function: linear;
animation-duration: 0.2s;
animation-fill-mode: forwards;
}
.bar-first-transformed {
@extend .bar-first;
@include bar-rotation(45deg);
}
.bar-third-transformed {
@extend .bar-third;
@include bar-rotation(-45deg);
}
JS Fiddle完整代码:https://jsfiddle.net/ntfzy2g5/
1条答案
按热度按时间62o28rlo1#
在SCSS中没有动画函数作用域的概念。换句话说,如果两次使用相同的动画名称,则会变换动画,而动画对于调用它的所有元素保持不变。
您可以找到一种方法为动画给予一个唯一的名称,例如使用随机生成的字符串,或者使用
transition
和类从0deg
到$deg
进行动画。我强烈推荐最后一个生成多个动画。