use*_*215 8 html css safari animation css-animations
寻找我在Safari(版本10.1.1)中遇到的错误的解决方法,其中使用%转换动画"转换"的元素在调整该元素的大小时无法正确更新.
下面是一个示例用例:通过使用以下方式将图像放置在textarea后面,类似于背景"cover":
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
Run Code Online (Sandbox Code Playgroud)
哪个按预期工作.
但是,如果我们将transform属性设置为具有相同值(但是已设置动画):
@keyframes same_transform_as_keyframes {
0%, 100% { transform: translateX(-50%) translateY(-50%); }
}
Run Code Online (Sandbox Code Playgroud)
animation: same_transform_as_keyframes 1s linear 0s infinite normal none running;
然后在Safari 10.1.1和iOS Safari中,转换最初按预期工作,但在调整元素大小时不会正确更新偏移量.
它在Chrome中运行良好.
这是CodePen演示此问题.
在我看来,问题是Safari正在计算变换的%值,但是在调整元素大小时不会重新计算这些值.
任何有关Safari的潜在修复的想法或帮助将不胜感激.通过在没有javascript的情况下改变其他一些属性来"强迫"Safari重新计算动画的行为?
只是为了澄清,我不是在寻找一种将背景图像居中的解决方法.我正在寻找一种解决方法,允许使用动画翻译(%)值.