safari - CSS旋转,平移,缩放动画错误

标签 safari css-animations

我已经使用关键帧为HTML/CSS3创建了动画。

动画是一个图标,该图标应该围绕其中心点旋转和缩放。

该动画可在Chrome中运行,但在Safari中,直到动画结束,它才能正确转换。

这是-定位到 safari 中的位置:

enter image description here

这是-平滑动画到位置-在 chrome 中:

enter image description here

这是动画CSS:

@keyframes icon-animation {
    0% {
        left: 188.5px;
        top: 187.5px;
        transform: translate(-50%, -50%) rotate(-45deg);
        transform-origin: 50% 50%;
        width: 286.84px;
        height: 233.81px;
    }
    16.6667% {
        transform: translate(-50%, -50%) rotate(-45deg);
        transform-origin: 50% 50%;
    }
    50% {
        left: 188px;
        top: 188.5px;
    }
    66.6667% {
        transform: translate(-50%, -50%) rotate(0deg);
        transform-origin: 50% 50%;
        width: 200px;
        height: 163px;
    }
    100% {
        left: 188px;
        top: 188.5px;
        transform: translate(-50%, -50%) rotate(0deg);
        transform-origin: 50% 50%;
        width: 200px;
        height: 163px;
    }
}

HTML和Default CSS很长,因此我创建了一个Codepen示例,可以在这里找到:

https://codepen.io/traviskirton/pen/NLdKbb

最佳答案

尽管很可能是Safari特有的错误,但我个人不会对静态像素计算+顶部和左侧调整感到困惑。

您在这里所做的基本上是将图像尺寸减小30%。

您可以通过scale轻松实现相同目的。

简化动画版本,使其也可以在Safari中正常工作。

@keyframes icon-animation {
    0% {
        transform-origin: 50% 50%;
        transform: translate(-50%, -50%) rotate(-45deg);
    }
    100% {
      transform-origin: 50% 50%;
      transform: translate(-50%, -50%) rotate(0deg) scale(.70);
    }
}

如果没有scale,则应尝试使用边距,但在Chrome或Firefox中可能会有不良行为。

关于safari - CSS旋转,平移,缩放动画错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52105292/

相关文章:

javascript - Css 动画 - 停止和恢复动画

javascript - CORS 请求与 Safari 一起使用吗?

未在 Safari 中设置 ASP.NET 表单例份验证 Cookie

CSS - Safari + Opera 中的边框宽度问题

jQuery 动画 - 通过坐标移动一个框

jquery - 扩展子 block 时增加父 block 高度(绝对)

html - 如何否定CSS中的运动

可使用 CSS3 动画排序的 jQuery UI

javascript - 如何在 Safari 中调试 javascript?

HTML5直播视频 "hack"