CSS 变形元素内的不透明动画
CSS opacity animation inside transforming element
我想做的事情:
我正在并排转换(平移和旋转)2 个内部都有内容的元素。内容有另一个动画。它在父级变换时淡入或淡出。
问题:
每当我为内容添加不透明动画时,第二个(变换)元素将始终在 Android 设备中呈现在另一个元素之上。但它可以在桌面浏览器和 iOS 设备中正确呈现。这是它的外观 image(注意红色方块在紫色方块后面的样子)。
如果我删除内容淡入淡出动画,它会在 Android 设备上正确呈现。
如何修复它,使其在 Android 设备中也能正常工作?
注意:内容可以是文本、图片、多个嵌套元素等。我只是使用简单的文本来简化问题。
这里是代码的简化:
<div class="container">
<div class="block block-1">
<div class="content content-1">Bye</div>
</div>
<div class="block block-2">
<div class="content content-2">Hello</div>
</div>
</div>
.block {
@extend %full;
@extend %animation;
transform-origin: 50% 50%;
&.block-1 {
background-color: purple;
animation-name: move-out;
}
&.block-2 {
background-color: red;
animation-name: move-in;
}
}
.content {
font-size: 2em;
color: white;
text-align: center;
@extend %animation;
&.content-1 {
animation-name: fade;
}
&.content-2 {
animation-name: fade;
animation-direction: reverse;
}
}
在尝试了几种解决方法后,我发现最好的方法是使内容成为旋转父级的同级内容,并在内容上同时添加旋转动画和淡入淡出动画。 Android 设备显然可以处理具有两种动画的元素,但不能处理具有变换的父元素和具有不透明度动画的子元素。
我想做的事情:
我正在并排转换(平移和旋转)2 个内部都有内容的元素。内容有另一个动画。它在父级变换时淡入或淡出。
问题:
每当我为内容添加不透明动画时,第二个(变换)元素将始终在 Android 设备中呈现在另一个元素之上。但它可以在桌面浏览器和 iOS 设备中正确呈现。这是它的外观 image(注意红色方块在紫色方块后面的样子)。
如果我删除内容淡入淡出动画,它会在 Android 设备上正确呈现。
如何修复它,使其在 Android 设备中也能正常工作?
注意:内容可以是文本、图片、多个嵌套元素等。我只是使用简单的文本来简化问题。
这里是代码的简化:
<div class="container">
<div class="block block-1">
<div class="content content-1">Bye</div>
</div>
<div class="block block-2">
<div class="content content-2">Hello</div>
</div>
</div>
.block {
@extend %full;
@extend %animation;
transform-origin: 50% 50%;
&.block-1 {
background-color: purple;
animation-name: move-out;
}
&.block-2 {
background-color: red;
animation-name: move-in;
}
}
.content {
font-size: 2em;
color: white;
text-align: center;
@extend %animation;
&.content-1 {
animation-name: fade;
}
&.content-2 {
animation-name: fade;
animation-direction: reverse;
}
}
在尝试了几种解决方法后,我发现最好的方法是使内容成为旋转父级的同级内容,并在内容上同时添加旋转动画和淡入淡出动画。 Android 设备显然可以处理具有两种动画的元素,但不能处理具有变换的父元素和具有不透明度动画的子元素。