html - CSS 动画 rotate3d 在 Safari 中不起作用

标签 html css safari css-animations css-transforms

无论我如何尝试,我都无法让此动画在 Safari 12 中运行。我已经尝试了供应商前缀和所有的方法,但没有任何效果。

它在 Chrome 中运行良好。有人有什么想法吗?

<div class="spinners"></div>

这是CSS:

@keyframes spinx {
  0% {
    transform: rotate3d(0, 1, 1, 360deg);
  }
  100% {
    transform: rotate3d(0, 0, 0, 360deg);
  }
}
.spinners {
  display: block;
  width: 100%;
  height: 4rem;
  overflow: hidden;
  position: relative;
}
.spinners:before, .spinners:after {
  content: "";
  width: 4rem;
  height: 4rem;
  border: 3px solid red;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -2rem 0 0 -2rem;
  display: block;
  transform-origin: 50% 50% 0;
}
.spinners:before {
  animation: spinx 2s infinite linear;
}
.spinners:after {
  border-color: blue;
  animation: spinx 4s infinite linear alternate;
}

这是一个演示: https://codepen.io/Skinner927/pen/vVEdag

最佳答案

似乎 Safari 和 Firefox 都无法识别两个关键帧之间的变化。要解决这个问题,您可以使用中间关键帧:

50% {
  transform: rotate3d(0, 1, 1, 180deg);
}

演示:

@keyframes spinx {
  0% {
    transform: rotate3d(0, 1, 1, 360deg);
  }
  50% {
    transform: rotate3d(0, 1, 1, 180deg);
  }
  100% {
    transform: rotate3d(0, 0, 0, 0);
  }
}

.spinners {
  display: block;
  width: 100%;
  height: 4rem;
  overflow: hidden;
  position: relative;
}

.spinners:before,
.spinners:after {
  content: "";
  width: 4rem;
  height: 4rem;
  border: 3px solid red;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -2rem 0 0 -2rem;
  display: block;
  transform-origin: 50% 50% 0;
}

.spinners:before {
  animation: spinx 2s infinite linear;
}

.spinners:after {
  border-color: blue;
  animation: spinx 4s infinite linear alternate;
}
<div class="box">
  <div class="spinners"></div>
</div>

关于html - CSS 动画 rotate3d 在 Safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52571632/

相关文章:

javascript - AngularJS - 语法错误 : Unexpected token ':' error in Safari Browser

javascript - 提交表单后重置 jQuery 输入字段字符倒计时

css - 如何使元素填充剩余的视口(viewport)高度?

javascript - 使用 jquery anchor 链接到多个类而不是 id

css - 如何创建一个包装浏览器 View 区域的界面?

css - fullCalendar - 更改一段时间的单元格颜色

safari - 使用 AppleScript 通过 Safari 下载文件

javascript - Safari 的 CSS 背景图像问题

javascript - 如何将我的代码从 div 标签更改为 textarea?

html - 带有数字和文本的按钮