html - 球没有正确滚动 CSS

标签 html css css-animations

我的动画效果很好,但它似乎在滑动,似乎没有滚动。可能是什么问题?

在这里摆弄:http://jsfiddle.net/erkoda3m/2/

img {
  height: 150px;
  width: 150px;
  animation: roll 4s linear infinite;
  -webkit-animation: roll 4s linear infinite;
}
@-webkit-keyframes roll {
  0% {
    -webkit-transform: translateX(0px) rotate(0deg);
  }
  50% {
    -webkit-transform: translateX(300px) rotate(360deg);
  }
  100% {
    -webkit-transform: translateX(0px) rotate(0deg);
  }
}
@keyframes roll {
  0% {
    transform: translateX(0px) rotate(0deg);
  }
  50% {
    transform: translateX(300px) rotate(360deg);
  }
  100% {
    transform: translateX(0px) rotate(0deg);
  }
}
<img src="http://i.imgur.com/5NvOwB5.png">

最佳答案

直径为150px,因此周长为150π = 471.24px。所以如果旋转 Angular 是360°,translateX值就是球的周长,或者471.24px:

img {
  height: 150px;
  width: 150px;
  animation: roll 4s linear infinite;
  -webkit-animation: roll 4s linear infinite;
}
@-webkit-keyframes roll {
  0% {
    -webkit-transform: translateX(0px) rotate(0deg);
  }
  50% {
    -webkit-transform: translateX(471.24px) rotate(360deg);
  }
  100% {
    -webkit-transform: translateX(0px) rotate(0deg);
  }
}
@keyframes roll {
  0% {
    transform: translateX(0px) rotate(0deg);
  }
  50% {
    transform: translateX(471.24px) rotate(360deg);
  }
  100% {
    transform: translateX(0px) rotate(0deg);
  }
}
<img src="http://i.imgur.com/5NvOwB5.png">

如果你想保持 translateX 不变并改变 rotate 值,你可以通过 (400/471.24)*360 计算 Angular > = 305.57deg

img {
  height: 150px;
  width: 150px;
  animation: roll 4s linear infinite;
  -webkit-animation: roll 4s linear infinite;
}
@-webkit-keyframes roll {
  0% {
    -webkit-transform: translateX(0px) rotate(0deg);
  }
  50% {
    -webkit-transform: translateX(400px) rotate(305.57deg);
  }
  100% {
    -webkit-transform: translateX(0px) rotate(0deg);
  }
}
@keyframes roll {
  0% {
    transform: translateX(0px) rotate(0deg);
  }
  50% {
    transform: translateX(400px) rotate(305.57deg);
  }
  100% {
    transform: translateX(0px) rotate(0deg);
  }
}
<img src="http://i.imgur.com/5NvOwB5.png">

关于html - 球没有正确滚动 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27877349/

相关文章:

jquery - 跨度包装跨度

html - 使用溢出时伪元素不可见

jquery - 我如何限制 jquery 中工具提示的边框?

javascript - 代码可以在 jsfiddle 中运行,但不能在 html 文档中运行。为什么?

javascript - 如何在两个 DOM 元素之间绘制一条贝塞尔曲线

c# 在字符串中间插入字符串

html - 对齐动态图像数django模板

javascript - 网络工具包 : How to determine what elements are under a touch while dragging an animating div

animation - React - 单个组件的动画安装和卸载

overflow hidden 的div容器中从左到右的CSS动画文本