我想使用 CSS 动画在垂直和水平居中的图像上创建一个脉冲动画。这在 Firefox 和 Chrome(移动和 OSX 版本)中运行良好。但是在Safari中搞砸了,图像的定位不正确。
奇怪的是,在切换桌面(三指向左或向右滑动)并返回 safari 后,图像的位置正确。
我创建了一个 jsfiddle 来显示这个问题,我省略了除 -webkit 之外的所有前缀。
JSfiddle在这里:https ://jsfiddle.net/stxnt1sb/9/
HTML
<article>
<img src="http://lorempixel.com/600/400/sports/">
</article>
CSS
article{
position:relative;
width:600px;
height:400px;
overflow:hidden;
}
img{
position:absolute;
top:50%;
left:50%;
width:100%;
-webkit-transform:translate(-50%,-50%);
-webkit-animation-name: pulse;
-webkit-animation-duration: 10s;
-webkit-animation-timing-function: ease-in-out;
-webkit-animation-iteration-count: infinite;
-webkit-animation-direction: normal;
}
@-webkit-keyframes pulse {
0% {
-webkit-transform: translate(-50%, -50%) scale(1) ;
}
33% {
-webkit-transform: translate(-50%, -50%) scale(1.05);
}
100% {
-webkit-transform: translate(-50%, -50%) scale(1) ;
}
}
图像在相对容器内绝对定位,以平移(-50%,-50%)为中心。脉冲是通过 css 动画完成的,为图像的比例设置动画。