我正在尝试创建一个动画,其中涉及以不同的速度移动几朵云来为天空设置动画。为了创建可重用的代码,我已经转向 mixins,但我似乎遇到了问题。
云有不同的起始位置(例如由右定义:100px - 在 $startpos 处传递)。在初始页面加载时,云位于正确的位置,但动画从随机的正确位置开始。
我的 scss 代码看起来像这样
@keyframes fadein {
from { opacity: 0 }
to { opacity: 1 }
}
@mixin cloud($height, $width, $bg, $startpos, $slowanim, $fastanim) {
background: url($bg) no-repeat;
background-size: contain;
border: none;
height: $height; // 800
width: $width; // 800
position: absolute;
right: $startpos;
opacity: 1;
animation: movecloudA $fastanim infinite;
&.animate {
animation: fadein 5s, movecloud $slowanim infinite;
opacity: 1;
}
@include keyframes(movecloud) {
0% { right: $startpos; }
100% { right: 100%; animation: movecloud $slowanim infinite;}
}
}
.cloudA {
@include cloud(800px, 800px, 'assets/cloudA.svg', -100px, 5s, 1s)
bottom: -400px;
}
.cloudB {
@include cloud(1200px, 1200px, 'assets/cloudB.svg', -1500px, 9s, 5s)
bottom: -800px;
transform: rotate(360deg);
}
将鼠标悬停在感叹号上后,可以在https://meshto.space/上重现该行为