css - 如何制作 CSS 旋转动画?

标签 css

我正在尝试制作一个在不同度数点具有不同速度的 css 旋转动画。

这是我要制作的动画:

enter image description here

Here is a Pen我目前拥有的,下面是代码:

img {
  width: 125px;
}

body {
  text-align: center;
}

#loading {
  -webkit-animation: slow 1.5s linear 1.5s, fast 1s linear 1s, slow2 1s linear 1s;
  -webkit-animation-iteration-count: infinite;
}

@-webkit-keyframes slow {
  from {
    -webkit-transform: rotate(0deg)
  }
  to {
    -webkit-transform: rotate(90deg)
  }
}

@-webkit-keyframes fast {
  from {
    -webkit-transform: rotate(91deg)
  }
  to {
    -webkit-transform: rotate(270deg)
  }
}

@-webkit-keyframes slow2 {
  from {
    -webkit-transform: rotate(271deg)
  }
  to {
    -webkit-transform: rotate(359deg)
  }
}
<img id="loading" src="https://i.imgur.com/VpLRlbZ.png">

最佳答案

因此,在您提供的示例中,效果仅通过修改 animation-timing-function css 属性来实现。

那么你将只有一个动画

div {
width:100px;
height:100px;
background:red;
animation:rotate 3s  infinite;
animation-timing-function: cubic-bezier(1,0,.5,1);
}

@-webkit-keyframes rotate {
    from { -webkit-transform: rotate(0deg) } 
    to { -webkit-transform: rotate(360deg) } 
}
<div></div>

您可以在这里找到更多信息:https://callmenick.com/dev/level-up-animations-cubic-bezier/

但要点是,只使用一个动画并修改不同 Angular 速度值修改此animation-timing-function

编辑感谢@SirExotic 评论,添加了更接近三次贝塞尔曲线的计时函数。

关于css - 如何制作 CSS 旋转动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50659284/

相关文章:

css - 字体很棒的图标,在图标中间改变颜色(文本)

css - 背景图像 css 在 IE7 和 8 中无法显示

css - CSS中背景图像的边距

设置 TextArea 和 StyleSheets/css 背景颜色的 Java 7 到 Java 8 问题

html - 如何在 css3 和 html5 中裁剪图像

html - 如何使纯 css float 工具提示(绝对定位跨度)动态调整大小以适应文本

受 float div 影响的 jQuery 标题栏高度

html - 如何使 div 响应并垂直堆叠它们?

php - 将变量传递给 wordpress php 函数

javascript - 如何将可自定义的颜色更改框下载为带有背景图像的图像?