在 CSS3 动画期间更改同级元素的 属性
Change property of sibling element during CSS3 animations
我想从兄弟元素的关键帧动画更改元素的 CSS 属性,比如在动画的 50% 标记处。
所以,像,
@keyframes animname
{
....
50%
{
sibling-element{ display:inline;}
}
....
}
这是不可能的。关键帧动画声明包含一组总体 运行 时间的百分比,定义可动画 属性 状态之间的过渡,例如不透明度 0 到 1,或左 0 到 200px。值必须是可动画的 属性 才能成为有效的关键帧值,因此不允许使用 css 选择器。 MDN go into more detail here
你可以做的是在两个不同的元素上触发两个动画,并仔细地为它们计时,这样效果就是兄弟姐妹在动画的某个时刻发生了一些事情。
@keyframes sibling-demo {
0% {
opacity: 0;
}
49.9999% {
opacity: 0;
}
50% {
opacity: 1;
}
100% {
opacity: 1;
}
}
@keyframes demo {
0% {
width: 100px;
}
100% {
width: 400px;
}
}
上面精简的代码公开了两个关键帧声明,如果它们 运行 在两个单独的元素上,一个似乎突然发生在另一个元素的一半。
我想从兄弟元素的关键帧动画更改元素的 CSS 属性,比如在动画的 50% 标记处。
所以,像,
@keyframes animname
{
....
50%
{
sibling-element{ display:inline;}
}
....
}
这是不可能的。关键帧动画声明包含一组总体 运行 时间的百分比,定义可动画 属性 状态之间的过渡,例如不透明度 0 到 1,或左 0 到 200px。值必须是可动画的 属性 才能成为有效的关键帧值,因此不允许使用 css 选择器。 MDN go into more detail here
你可以做的是在两个不同的元素上触发两个动画,并仔细地为它们计时,这样效果就是兄弟姐妹在动画的某个时刻发生了一些事情。
@keyframes sibling-demo {
0% {
opacity: 0;
}
49.9999% {
opacity: 0;
}
50% {
opacity: 1;
}
100% {
opacity: 1;
}
}
@keyframes demo {
0% {
width: 100px;
}
100% {
width: 400px;
}
}
上面精简的代码公开了两个关键帧声明,如果它们 运行 在两个单独的元素上,一个似乎突然发生在另一个元素的一半。